A small library to read and interpret replays of the game Supreme Commander: Forged Alliance Forever. It also supports the compressed replay format of FAForever. It is inspired by a similar Java implementation.
We use the BenchmarkDotNet library to generate basic statistics of the performance of the library as a whole. We do not generate statistics of individual functions since in practice you'll never call the individual functions - you'll always parse a replay as a single unit.
All files in assets/faforever
are automatically part of the benchmark.
Benchmark data from 2024/09/04
ReplayFile | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated |
---|---|---|---|---|---|---|---|
23225104.fafreplay | 17.290 ms | 0.3406 ms | 0.2844 ms | 1218.7500 | 1187.5000 | 968.7500 | 29.06 MB |
23225323.fafreplay | 5.238 ms | 0.0730 ms | 0.0683 ms | 1078.1250 | 1062.5000 | 1000.0000 | 12.07 MB |
23225440.fafreplay | 2.438 ms | 0.0205 ms | 0.0192 ms | 539.0625 | 535.1563 | 496.0938 | 4.12 MB |
23225508.fafreplay | 1.056 ms | 0.0205 ms | 0.0182 ms | 261.7188 | 259.7656 | 248.0469 | 1.65 MB |
23225685.fafreplay | 6.138 ms | 0.0548 ms | 0.0512 ms | 1093.7500 | 1085.9375 | 1000.0000 | 12.94 MB |
The library attempts to use the latest and greatest of C#. This is made possible because of various books and online education content:
And relevant documentation:
With thanks to the following individuals:
- https://github.com/JoschiZ for casually helping a stranger with Blazor struggles on Discord