86 Commits

Author SHA1 Message Date
Timofey Solomko 51734eb8d3 [swcomp] Remove empty warmupIteration function from comp-ratio benchmarks
These functions weren't called anyway since 5e8f568f64 commit where Benchmark protocol requirement for this function acquired Double return type. In any event, skipping of warmup iteration is better controlled by the corresponding option of "benchmark run" command.
2026-02-23 18:08:26 +08:00
Timofey Solomko d76351caa0 [swcomp] Update benchmark run command to use new format 2026-02-12 21:44:42 +08:00
Timofey Solomko 52961ea60d [swcomp] Update benchmark show command to use new format
This allowed to rewrite implementation in a much clearer way. One user-visible change, however, is that NEW/BASE is now always printed with an index even if there is only one (implementation complexity to accommodate empty index is not worth it).
2026-02-12 21:44:42 +08:00
Timofey Solomko 515c11fd0e [swcomp] Support new format in benchmark remove-run command 2026-02-12 21:44:42 +08:00
Timofey Solomko 8847fe92ce [swcomp] SaveFile.load now auto-converts from old format 2026-02-12 21:44:41 +08:00
Timofey Solomko 4ec437e912 [swcomp] Add benchmark convert command
This command converts save file from old format to the new one.
2026-02-12 21:44:35 +08:00
Timofey Solomko 20d33b0966 [swcomp] Add a new benchmark save file format
Ultimately, it turned out that the approach of the old save file format of separating runs metadatas and results only leads to super complicated code. Unfortunately, it didn't help with append-updates to save files (they are still loaded fully, their content is modified in memory, and the actual file is then overwritten).
2026-02-12 21:44:35 +08:00
Timofey Solomko 98b5ee3610 [swcomp] Save results file JSON with keys sorted
This ensures a more stable layout of JSON fields between updates to the same file.
2026-02-12 21:44:35 +08:00
Timofey Solomko 3f5694aeee [swcomp] Rename SaveFile to OldSaveFile 2026-02-12 21:44:35 +08:00
Timofey Solomko b2b4e18a58 [swcomp] Remove redundant import statements 2026-02-12 21:44:30 +08:00
Timofey Solomko 871b5dbe03 [swcomp] Add benchmark remove-run subcommand 2026-02-12 21:44:29 +08:00
Timofey Solomko 5618fea2ee [swcomp] Add --self-compare option to benchmark show command
This option allows to compare a run with other runs in the same file.
2026-02-11 21:56:37 +08:00
Timofey Solomko c05b37d324 [swcomp] Add --metadata-only option to benchmark show command
With this option only metadata is printed for the benchmark runs saved in the file.
2026-02-11 19:15:20 +08:00
Timofey Solomko 6b701e0b2f [swcomp] Add --print-uuid option to benchmark show command
This option enables printing of internal UUIDs of benchmark runs saved in the file.
2026-02-11 19:14:26 +08:00
Timofey Solomko e236b502b7 [swcomp] Improve benchmark show output for multi-way comparsions 2026-02-11 19:03:48 +08:00
Timofey Solomko 3537e0ada1 [swcomp] Save raw benchmark data for posterity 2026-02-11 19:03:14 +08:00
Timofey Solomko 5e8f568f64 [swcomp] Save and show benchmark warmup iteration 2026-02-11 19:03:14 +08:00
Timofey Solomko 5d27f1b9b9 [swcomp] Print benchmark metadatas in normal order 2026-02-11 19:03:09 +08:00
Timofey Solomko ea9aaccfb9 Update copyright year to 2026 2026-01-31 15:30:24 +08:00
Timofey Solomko fa4af5803a [TAR] Remove compatibility functions for FileHandle 2024-04-21 17:18:53 +03:00
Timofey Solomko ed66991cbd Update copyright year to 2024 2024-01-11 16:57:04 +03:00
Timofey Solomko 43132fc39d Update copyright year to 2023 2023-02-07 15:31:45 +02:00
Timofey Solomko 7cf26da9cb [swcomp] Optimize printing in benchmark show 2022-10-11 21:25:21 +03:00
Timofey Solomko d3143d58b4 [swcomp] Perform benchmark speed computations using nanosecond time resolution 2022-10-11 21:14:11 +03:00
Timofey Solomko 5187f34a9d [swcomp] Reuse saved benchmark metadata if possible 2022-10-11 11:22:03 +03:00
Timofey Solomko 9a948f8584 [swcomp] Make benchmark results timestamp optional by introducing --preserve-timestamp option 2022-10-11 11:22:03 +03:00
Timofey Solomko 708e1bbade [swcomp] Add --append option to benchmark run 2022-10-11 11:22:02 +03:00
Timofey Solomko f3ca7a7ff5 [swcomp] Print brackets around metadata numbers 2022-10-11 11:22:02 +03:00
Timofey Solomko f47d541882 [swcomp] Introduce a new, more flexible version of the save file format
It features a separate struct for results metadata and also allows multi-way comparisons with previously saved results.
2022-10-11 11:21:36 +03:00
Timofey Solomko 899cf8a815 [swcomp] Add --description option to the benchmark run command 2022-10-06 15:14:04 +03:00
Timofey Solomko b660005a7c [swcomp] Print saved metadata 2022-10-06 15:13:15 +03:00
Timofey Solomko 577531c4be [swcomp] Use SaveFile for saving and loading benchmark results 2022-10-06 14:26:59 +03:00
Timofey Solomko a3e439aff5 [swcomp] Add SaveFile struct for saving additional benchmark metadata 2022-10-06 14:26:29 +03:00
Timofey Solomko 1c98d5316d [swcomp] Perform comparison with the first result when there are multiple
Previosuly, the comparsion was skipped entirely.
2022-10-06 12:55:15 +03:00
Timofey Solomko 4e4f734ab0 [swcomp] Add "benchmark show" command 2022-10-05 20:44:05 +03:00
Timofey Solomko f47cf14f26 [swcomp] Improve loading and printing of base benchmark results 2022-10-05 20:33:27 +03:00
Timofey Solomko 61eb547202 [swcomp] Extract comparison printing as a new function 2022-10-05 18:07:47 +03:00
Timofey Solomko e84040b156 [swcomp] Add benchmark command group 2022-10-05 15:08:00 +03:00
Timofey Solomko dca723d940 [swcomp] Rename benchmark command to run command and add a long description 2022-10-05 15:07:38 +03:00
Timofey Solomko c9e10ebc35 [swcomp] Rework exiting with error codes
Different errors now have different error codes, the code for exiting is now standardized.
2022-05-20 17:00:22 +03:00
Timofey Solomko c407bcfb9c [swcomp] Add comparison with saved results via --compare option 2022-05-15 19:52:17 +03:00
Timofey Solomko 5db42cfb1c [swcomp] Add --save option which allows to save benchmarking results in json format 2022-05-15 15:27:33 +03:00
Timofey Solomko 5daac3cd0a [swcomp] Add -W shorthand for the --no-warmup option 2022-05-15 15:27:00 +03:00
Timofey Solomko 985ceb6cf8 [swcomp] Replace useSpeedFormatter with format function 2022-02-20 21:57:15 +03:00
Timofey Solomko 140c197c2e [swcomp] Change defaultIterationCount to instance variable 2022-02-20 21:49:07 +03:00
Timofey Solomko ee90c99ec6 [swcomp] Add benchmarks for compression ratio 2022-02-20 19:05:46 +03:00
Timofey Solomko ebfcdfa9d2 [swcomp] Benchmarks can now disable speed formatter 2022-02-20 18:52:07 +03:00
Timofey Solomko 5423fd9fb5 [swcomp] Replace speed uncertainty with standard deviation 2022-02-20 18:44:26 +03:00
Timofey Solomko 62c2ce8494 [swcomp] Benchmarks can now customize default iteration count 2022-02-20 16:32:13 +03:00
Timofey Solomko 65d50a8ff7 [swcomp] Rewrite the benchmarking system
The intent was to decouple command-line stuff from the taking measurements stuff, while simplifyin the overall structure. It remains to be seen if these goals were achieved. Currently, compression ratio printing is disabled. Also the results from warmup iteration are also omitted (but it is likely that they won't be restored).
2022-01-30 20:32:03 +03:00