Akka.net v1.4.27 Release Notes

Release Date: 2021-09-29 // over 2 years ago
  • ๐Ÿš€ Maintenance Release for Akka.NET 1.4 Akka.NET v1.4.27 is a small release that contains some major performance improvements for Akka.Remote.

    ๐ŸŽ Performance Fixes ๐Ÿ“œ In RemoteActorRefProvider address paring, caching and resolving improvements Akka.NET contributor @Zetanova introduced some major changes that make the entire ActorPath class much more reusable and more parse-efficient.

    ๐ŸŽ Our last major round of Akka.NET performance improvements in Akka.NET v1.4.25 produced the following:

    OSVersion:                         Microsoft Windows NT 6.2.9200.0
    ProcessorCount:                    16
    ClockSpeed:                        0 MHZ
    Actor Count:                       32
    Messages sent/received per client: 200000  (2e5)
    Is Server GC:                      True
    Thread count:                      111
    
    Num clients, Total [msg], Msgs/sec, Total [ms]
             1,  200000,    130634,    1531.54
             5, 1000000,    246975,    4049.20
            10, 2000000,    244499,    8180.16
            15, 3000000,    244978,   12246.39
            20, 4000000,    245159,   16316.37
            25, 5000000,    243333,   20548.09
            30, 6000000,    241644,   24830.55
    

    In Akka.NET v1.4.27 those numbers now look like:

    OSVersion:                         Microsoft Windows NT 6.2.9200.
    ProcessorCount:                    16                            
    ClockSpeed:                        0 MHZ                         
    Actor Count:                       32                            
    Messages sent/received per client: 200000  (2e5)                 
    Is Server GC:                      True                          
    Thread count:                      111                           
    
    Num clients, Total [msg], Msgs/sec, Total [ms]                   
             1,  200000,    105043,    1904.29                       
             5, 1000000,    255494,    3914.73                       
            10, 2000000,    291843,    6853.30                       
            15, 3000000,    291291,   10299.75                       
            20, 4000000,    286513,   13961.68                       
            25, 5000000,    292569,   17090.64                       
            30, 6000000,    281492,   21315.35
    

    ๐ŸŽ To put these numbers in comparison, here's what Akka.NET's performance looked like as of v1.4.0:

    Num clients (actors)    Total [msg] Msgs/sec    Total [ms]
    1   200000  69736   2868.60
    5   1000000 141243  7080.98
    10  2000000 136771  14623.27
    15  3000000 38190   78556.49
    20  4000000 32401   123454.60
    25  5000000 33341   149967.08
    30  6000000 126093  47584.92
    

    We've made Akka.Remote consistently faster, more predictable, and reduced total memory consumption significantly in the process.

    ๐Ÿ‘€ You can see the full set of changes introduced in Akka.NET v1.4.27 here

    COMMITS LOC+ LOC- AUTHOR
    3 89 8 Aaron Stannard
    1 856 519 Andreas Dirnberger
    1 3 4 Vadym Artemchuk
    1 261 233 Gregorius Soedharmo
    1 1 1 dependabot[bot]