-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added Dispatcher Benchmarks #6140
Added Dispatcher Benchmarks #6140
Conversation
Lots of delegate allocation in all of the dispatchers - especially the |
Some of it might also be just items being added to the work queue - not necessarily delegate allocation. Could also be some boxing allocation involved too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed my own PR
|
||
public IEnumerable<DispatcherConfig> AllConfigurators() | ||
{ | ||
yield return new DispatcherConfig(DefaultConfig.GetConfig("akka.actor.default-dispatcher"), "DefaultThreadPool"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pulls out default Akka.NET dispatcher configurations, where available
{ | ||
if (Interlocked.Increment(ref _counter) >= _target) | ||
{ | ||
_tcs.TrySetResult(_counter); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Try to force all operations to complete before allowing each benchmark iteration to exit
* added parameterized Dispatcher benchmarks * fixed naming - also, pull all config from Akka defaults
Changes
Added Benchmark.NET ports of our old NBench benchmarks in order to measure memory allocation and throughput for various benchmark configurations.
Checklist
For significant changes, please ensure that the following have been completed (delete if not relevant):
Latest
v1.4
Benchmarks.NET 6
.NET Core 3.1