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.
1.4.21 June 16 2021
Maintenance Release for Akka.NET 1.4
Akka.NET v1.4.21 is a significant release that includes major performance improvements, bug fixes, and a major update to the Akka.DependencyInjection NuGet package.
Performance Improvements
Akka.NET v1.4.21 includes some major performance fixes and improvements:
Ask
is now ~10% fasterMurmurHash
is 33% faster and allocates 0 memory - used heavily in DData, Cluster Sharding, and Consistent Hash RoutersActorPath.Parse
went from 1672 ns/op to 527 ns/op - a 68% improvement in throughput and a 50% reduction in memory. See #5039 and #5068.ActorPath.ToString
call fromResolveActorRefWithLocalAddress
ThreadPool.SetMinThreads(0,0)
- based on the input from users on "Akka.NET v1.4.19: ChannelExecutor performance data"Our observed performance numbers for Akka.Remote show a significant increase in performance for v1.4.21 over v1.4.20:
Before
After
Akka.DependencyInjection Updates
We had one major issue we implemented in v1.4.21 for Akka.DependencyInjection: Abstraction of
ServiceProvider
, Improving Akka.DependencyInjectionWhat this change did was:
Akka.DependencyInjection.ServiceProvider
class in favor of theAkka.DependencyInjection.DependencyResolver
class - to avoid namespace collision with Microsoft.Extensions.DependencyInjection.ServiceProvider;Akka.DependencyInjection.ServiceProviderSetup
class in favor of theAkka.DependencyInjection.DependencyResolverSetup
class for consistency reasons;Akka.DependencyInjection.DependencyResolver
now takes an input of typeIDependencyResolver
, which allows users to abstract away theIServiceProvider
and mock / replace it during unit testing; andProps
methods for dynamically spawning actors via DI.All of these changes are backwards-compatible with v1.4.20 and earlier - and the deprecation warnings will appear in your code when you upgrade. If you run into any issues upgrading to Akka.DependencyInjection v1.4.21 please reply on this thread!
Other Changes and Fixes
FileSubscriber
VectorClock
performance optimizations toVersionVector
and similar typesTo see the full set of fixes in Akka.NET v1.4.21, please see the milestone on Github.