Skip to content
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

Backport v1.4.44 performance fixes to v1.5 #6162

Merged
merged 10 commits into from
Oct 8, 2022

Commits on Oct 8, 2022

  1. WIP queue benchmarks (akkadotnet#6127)

    * WIP queue benchmarks
    
    * completed MailboxThroughputBenchmarks
    
    * disable `CallingThreadDispatcher`
    Aaronontheweb committed Oct 8, 2022
    Configuration menu
    Copy the full SHA
    70c57df View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    352d9a1 View commit details
    Browse the repository at this point in the history
  3. Added Dispatcher Benchmarks (akkadotnet#6140)

    * added parameterized Dispatcher benchmarks
    
    * fixed naming - also, pull all config from Akka defaults
    Aaronontheweb committed Oct 8, 2022
    Configuration menu
    Copy the full SHA
    dbdc4e1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7855518 View commit details
    Browse the repository at this point in the history
  5. remove delegate allocation from ForkJoinDispatcher and `DedicatedTh…

    …readPool` (akkadotnet#6143)
    
    Instead of having the `DedicatedThreadPool` operate on `Action` delegates, we now just take the `IRunnable` directly. Avoids a delegate allocation per-invocation.
    Aaronontheweb committed Oct 8, 2022
    Configuration menu
    Copy the full SHA
    2032ff9 View commit details
    Browse the repository at this point in the history
  6. added actor messaging pressure benchmark (akkadotnet#6147)

    purpose of this benchmark is not to measure processing time - it's meant to measure allocation pressure created by Akka.NET infrastructure:
    
    * `Envelope`s
    * `Mailbox` and `MessageDispatcher` overhead
    * `ActorCell` and `ActorBase` invocation overhead
    
    Ideally the memory pressure, given a `const string` as messaging input, should be close to zero - but between mailbox queue segment allocations, delegate + closure allocations, and probably some boxing we know that's not the case. Purpose of this benchmark is to measure that impact across threads.
    Aaronontheweb committed Oct 8, 2022
    Configuration menu
    Copy the full SHA
    ef186a4 View commit details
    Browse the repository at this point in the history
  7. Make Envelope a reference type again (akkadotnet#6137)

    * convert `Envelope` back into a reference type
    
    * approved API changes
    
    * changed to `readonly struct`
    
    * fixed API approvals
    Aaronontheweb committed Oct 8, 2022
    Configuration menu
    Copy the full SHA
    e308e28 View commit details
    Browse the repository at this point in the history
  8. Reduce FSM<TState, TData> allocations (akkadotnet#6145)

    * close akkadotnet#2560 - added performance benchmarks for FSM
    
    * Improved FSM memory consumption
    
    * Made `Event` a `readonly struct`
    * Eliminated unnecessary `List<object>` allocations
    * Cleaned up XML-DOC comments
    
    * don't return new `State<TState, TData>` during `Stay()`
    
    * API approvals
    
    * fixed `State<TS.,TD>` errors
    Aaronontheweb committed Oct 8, 2022
    Configuration menu
    Copy the full SHA
    18aae3b View commit details
    Browse the repository at this point in the history
  9. make DedicatedThreadPool.QueueUserWorkItem<T> generic (akkadotnet#6156

    )
    
    * make `DedicatedThreadPool.QueueUserWorkItem<T>` generic
    
    Done to avoid boxing allocations
    
    * make adding methods generic
    Aaronontheweb committed Oct 8, 2022
    Configuration menu
    Copy the full SHA
    2131146 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    43ba211 View commit details
    Browse the repository at this point in the history