Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

C# application to replay .utracy files generated by Paradise's fork of byond-tracy.

License

Notifications You must be signed in to change notification settings

AffectedArc07/ParaTracyReplay

Repository files navigation

ParaTracyReplay

Depreacted

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.

Old Info

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.

Usage

  1. Build with Visual Studio or grab the latest release.
  2. ParaTracyReplay.exe your_file.utracy.
  3. Connect capture.exe or tracy.exe to 127.0.0.1:8086.
  4. Wait for the data to finish streaming.

Why

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.

Contributing

Just make PRs and test them, the contribution rules on this repo are pretty loose, just don't take a mile.

Thanks

Special thanks to @mafemergency for making byond-tracy and the original python script, and to @FiniteReality for helping with some final implementation issues.

License

This project is licensed under the MIT license. You can find a copy in LICENSE.MD.

About

C# application to replay .utracy files generated by Paradise's fork of byond-tracy.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages