This project has been replaced by https://github.com/Dimach/rtracy.
Not only does the above project let you split trace files, and work on newer Tracy versions (0.10 (Protocol 64) as of time of writing, rtracy commmit ec5c42c1625601025769277aa510a9249a0f9838), it is also monsterously fast.
$ time capture -o rust_output.tracy
Connecting to 127.0.0.1:8086...
Queue delay: 10 ns
Timer resolution: 7 ns
777.63 Mbps / 36.7% =2118.54 Mbps | Tx: 9622.45 MB | 27.1 GB | 2:21:24
Frames: 168545
Time span: 2:21:24
Zones: 1,044,259,858
Elapsed time: 1:41.5
Saving trace... done!
Trace size 9399.3 MB (36.20% ratio)
real 2m46.601s
user 0m0.015s
sys 0m0.000s
Not only is it about 3x as fast as this project, but just over a minute of that time was spent saving the trace to disk. The actual loading time of the trace was 1 minute 40 seconds. I have no words.
Allows loading of .utracy
files generated by https://github.com/ParadiseSS13/byond-tracy to then be captured by Tracy.
Works with Tracy 0.8.2 and Paradise's fork of byond-tracy as of 6168fac975061bb20faf26c0d5c0f41ca4be6e75. This is latest as of time of writing (2023-05-02), with subsequent commits being documentation changes.
- Build with Visual Studio or grab the latest release.
ParaTracyReplay.exe your_file.utracy
.- Connect
capture.exe
ortracy.exe
to127.0.0.1:8086
. - Wait for the data to finish streaming.
This is approximately 5x faster than the Python script it was based on, and has proper type safety. The former may not sound like an issue with small traces, but when you have a profile spanning an entire 2 hour round (40GB), the speed REALLY starts to matter.
A 2 hour 20 minute round on Paradise produced a .utracy
file 49GB big. The python script took 48 minutes and 20 seconds (including save time) to replay it.
$ time capture -o python_output.tracy
Connecting to 127.0.0.1:8086...
Queue delay: 10 ns
Timer resolution: 7 ns
12.46 Mbps / 90.4% = 13.78 Mbps | Tx: 9854.02 MB | 27.1 GB | 2:21:24
Frames: 168545
Time span: 2:21:24
Zones: 1,044,465,597
Elapsed time: 47:12.6
Saving trace... done!
Trace size 9415.84 MB (36.25% ratio)
real 48m20.489s
user 0m0.015s
sys 0m0.000s
This application took 9 minutes and 7 seconds (including save time) to replay it.
$ time capture -o cs_output.tracy
Connecting to 127.0.0.1:8086...
Queue delay: 10 ns
Timer resolution: 7 ns
182.30 Mbps / 41.1% = 444.08 Mbps | Tx: 10.31 GB | 27.1 GB | 2:21:24
Frames: 168545
Time span: 2:21:24
Zones: 1,044,465,597
Elapsed time: 8:04.3
Saving trace... done!
Trace size 9415.75 MB (36.25% ratio)
real 9m7.589s
user 0m0.000s
sys 0m0.000s
Thats 18.8% of the time the Python script took.
Just make PRs and test them, the contribution rules on this repo are pretty loose, just don't take a mile.
Special thanks to @mafemergency for making byond-tracy
and the original python script, and to @FiniteReality for helping with some final implementation issues.
This project is licensed under the MIT license. You can find a copy in LICENSE.MD
.