Github user michaelandrepearce commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1777
  
    Sure, using JMH to measure performance of the two AddressInfo 
Implementations.
    
    Benchmark                            Mode  Cnt          Score        Error  
Units
    MyBenchmark.testEnumSetAddressInfo  thrpt  200  198607467.630 ± 507344.268 
 ops/s
    MyBenchmark.testHashSetAddressInfo  thrpt  200   22849376.205 ± 216480.582 
 ops/s
    
    This is simulating what happens in the hotpath of sending a message in 
doSend within ServerSessionImpl. Which is creating an AddressInfo and then 
getRoutingType.
    
    As you note the throughput is an order of magnitude of 8x.
    
    
    Also from a java memory footprint this is far better.
    
    AddressInfo using HashSet  with one routing type -> 208 bytes
    AddressInfo using HashSet with two routing types -> 240 bytes
    
    AddressInfo using EnumSet with one routing type -> 72 bytes
    AddressInfo using EnumSet with two routing types -> 72 bytes



---

Reply via email to