Benchmark was refactored to not overflow memory #102
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Now threads generating load are pause generation if actor's queue size growth above given threshold.
Now benchmark uses trivial-benchmark library which formats results in a unified way on different lisp implementations. However the most wide variety of metrics are supported for SBCL only.
The pro of using trivial-benchmark here is that it automates repeated tests. Now you can set a number of runs for the benchmark and a duration of the each run. And trivial-benchmark will automatically calculate average, median and deviation of each metric across all runs.
For Sento benchmark I've added a special metric - a message per second. During my tests satisfactory results were obtained when test duration was set to 10 seconds and a number of runs to 60.
On my Macbook M1 with 16G of memory benchmark results are:
Note, you will need the latest trivial-benchmark with this PR merged. It is available from https://ultralisp.org