Garbage collection / allocation performance tests for C# / .NET and Go.
Please see Go vs C#, part 2: Garbage Collection.
Other useful links:
- Raw test-all output for a set of machines can be found in the "results" folder
- The spreadsheet summarizing the most important metrics.
Prerequisites:
- Install .NET Core SDK: https://www.microsoft.com/net/download
- Install Go: https://golang.org/doc/install?download
To run a single test, use run
or Run.bat
scripts; --help
option shows all other options you can use.
To run a sequence of tests, use test-all
or Test-All.bat
scripts, and likely, that's the way you want to run it. There are two options:
-o OUTPUT_SUFFIX_STRING
changes the names of its output files from*-Default.txt
to*-OUTPUT_SUFFIX_STRING.txt
-d DURATION_IN_SECONDS
sets the duration of a single GCBurn test pass. The default duration is 2 minutes - we've found it's almost always enough to catch long Gen2 GC pauses on this test; besides that, setting it to larger values tends to crash Go more reliably on "Static set = 50+% RAM" test cases.
If you are willing to translate the test to another language (e.g. Java) and share your findings, it would be simply amazing. Please contact me on Facebook if you need any help with this.