orpiske commented on PR #10157:
URL: https://github.com/apache/camel/pull/10157#issuecomment-1559102356

   @davsclaus I've just got the results of testing this code. It has quite a 
big impact in concurrent scenarios. I run some tests comparing with Camel 
4.0.0-M3 (baseline) with this patch. 
   
   For **resolving** the endpoints:
   
   Baseline: 
   ```
   Benchmark                                Mode  Cnt  Score   Error  Units
   EndpointResolveTest.testActionStatus_1   avgt   10  3.273 ± 0.003  us/op
   EndpointResolveTest.testActionStatus_16  avgt   10  3.674 ± 0.007  us/op
   EndpointResolveTest.testActionStatus_2   avgt   10  3.314 ± 0.002  us/op
   EndpointResolveTest.testActionStatus_32  avgt   10  4.738 ± 0.020  us/op
   EndpointResolveTest.testActionStatus_4   avgt   10  3.730 ± 0.001  us/op
   EndpointResolveTest.testActionStatus_8   avgt   10  3.400 ± 0.002  us/op
   ```
   
   This patch:
   
   ```
   Benchmark                                Mode  Cnt   Score   Error  Units
   EndpointResolveTest.testActionStatus_1   avgt   10   3.727 ± 0.002  us/op
   EndpointResolveTest.testActionStatus_16  avgt   10  12.688 ± 1.002  us/op
   EndpointResolveTest.testActionStatus_2   avgt   10   3.405 ± 0.003  us/op
   EndpointResolveTest.testActionStatus_32  avgt   10  25.113 ± 0.785  us/op
   EndpointResolveTest.testActionStatus_4   avgt   10   3.792 ± 0.001  us/op
   EndpointResolveTest.testActionStatus_8   avgt   10   3.741 ± 0.014  us/op
   ```
   
   **Note**: the _X is the number of threads (i.e.; 
EndpointResolveTest.testActionStatus_4  is the test with 4 threads). 
   
   For the **endpoint registry operations**:
   
   
   Baseline:
   ```
   Benchmark                                          Mode  Cnt     Score    
Error  Units
   EndpointRegistryTest.testContainsExistentKey       avgt   10    17.696 ±  
0.007  us/op
   EndpointRegistryTest.testContainsNonExistentKey    avgt   10     5.190 ±  
0.001  us/op
   EndpointRegistryTest.testContainsNonExistentValue  avgt   10  1866.783 ±  
0.401  us/op
   EndpointRegistryTest.testDynamicSize               avgt   10     0.002 ±  
0.001  us/op
   EndpointRegistryTest.testIsDynamic                 avgt   10  1045.090 ±  
1.387  us/op
   EndpointRegistryTest.testReadOnlyMap               avgt   10    18.633 ±  
0.017  us/op
   EndpointRegistryTest.testReadOnlyValues            avgt   10     5.812 ±  
0.025  us/op
   ```
   
   This patch: 
   
   ```
   Benchmark                                          Mode  Cnt     Score    
Error  Units
   EndpointRegistryTest.testContainsExistentKey       avgt   10    23.900 ±  
0.006  us/op
   EndpointRegistryTest.testContainsNonExistentKey    avgt   10    21.621 ±  
0.032  us/op
   EndpointRegistryTest.testContainsNonExistentValue  avgt   10  1866.985 ±  
0.566  us/op
   EndpointRegistryTest.testDynamicSize               avgt   10     0.027 ±  
0.001  us/op
   EndpointRegistryTest.testIsDynamic                 avgt   10  1003.702 ± 
61.613  us/op
   EndpointRegistryTest.testReadOnlyMap               avgt   10    19.331 ±  
0.009  us/op
   EndpointRegistryTest.testReadOnlyValues            avgt   10     5.895 ±  
0.024  us/op
   ```
   
   And the impact is quite extreme for the registry under concurrent access: 
   
   Baseline:
   ```
   Benchmark                                                       Mode  Cnt    
 Score    Error  Units
   EndpointRegistryScalabilityTest.testContainsNonExistentKey_2    avgt   10    
17.520 ±  0.010  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentKey_4    avgt   10    
16.919 ±  0.002  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentKey_8    avgt   10    
16.848 ±  0.009  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentValue_2  avgt   10  
1881.827 ±  0.240  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentValue_4  avgt   10  
1873.975 ±  0.102  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentValue_8  avgt   10  
1904.569 ±  0.129  us/op
   EndpointRegistryScalabilityTest.testDynamicSize_2               avgt   10    
 0.002 ±  0.001  us/op
   EndpointRegistryScalabilityTest.testDynamicSize_4               avgt   10    
 0.002 ±  0.001  us/op
   EndpointRegistryScalabilityTest.testDynamicSize_8               avgt   10    
 0.002 ±  0.001  us/op
   EndpointRegistryScalabilityTest.testIsDynamic_2                 avgt   10  
1005.876 ±  0.376  us/op
   EndpointRegistryScalabilityTest.testIsDynamic_4                 avgt   10   
984.097 ±  0.402  us/op
   EndpointRegistryScalabilityTest.testIsDynamic_8                 avgt   10  
1000.953 ±  0.392  us/op
   EndpointRegistryScalabilityTest.testReadOnlyMap_2               avgt   10    
20.184 ±  0.020  us/op
   EndpointRegistryScalabilityTest.testReadOnlyMap_4               avgt   10    
19.486 ±  0.010  us/op
   EndpointRegistryScalabilityTest.testReadOnlyMap_8               avgt   10    
19.062 ±  0.028  us/op
   EndpointRegistryScalabilityTest.testReadOnlyValues_2            avgt   10    
 6.539 ±  0.012  us/op
   EndpointRegistryScalabilityTest.testReadOnlyValues_4            avgt   10    
 6.498 ±  0.004  us/op
   EndpointRegistryScalabilityTest.testReadOnlyValues_8            avgt   10    
 6.782 ±  0.018  us/op
   ```
   
   This patch:
   ```
   Benchmark                                                       Mode  Cnt    
  Score     Error  Units
   EndpointRegistryScalabilityTest.testContainsNonExistentKey_2    avgt   10    
138.018 ±   5.506  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentKey_4    avgt   10    
347.650 ±   4.114  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentKey_8    avgt   10   
2727.941 ±  27.952  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentValue_2  avgt   10   
4908.715 ± 434.815  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentValue_4  avgt   10   
9054.876 ±  61.169  us/op
   EndpointRegistryScalabilityTest.testContainsNonExistentValue_8  avgt   10  
18575.008 ± 321.350  us/op
   EndpointRegistryScalabilityTest.testDynamicSize_2               avgt   10    
  0.121 ±   0.001  us/op
   EndpointRegistryScalabilityTest.testDynamicSize_4               avgt   10    
  0.576 ±   0.002  us/op
   EndpointRegistryScalabilityTest.testDynamicSize_8               avgt   10    
  1.915 ±   0.008  us/op
   EndpointRegistryScalabilityTest.testIsDynamic_2                 avgt   10   
1050.203 ±   2.756  us/op
   EndpointRegistryScalabilityTest.testIsDynamic_4                 avgt   10   
1093.550 ±  60.650  us/op
   EndpointRegistryScalabilityTest.testIsDynamic_8                 avgt   10   
3698.012 ±  16.992  us/op
   EndpointRegistryScalabilityTest.testReadOnlyMap_2               avgt   10    
 20.164 ±   0.038  us/op
   EndpointRegistryScalabilityTest.testReadOnlyMap_4               avgt   10    
 19.920 ±   0.008  us/op
   EndpointRegistryScalabilityTest.testReadOnlyMap_8               avgt   10    
 19.935 ±   0.025  us/op
   EndpointRegistryScalabilityTest.testReadOnlyValues_2            avgt   10    
  6.683 ±   0.028  us/op
   EndpointRegistryScalabilityTest.testReadOnlyValues_4            avgt   10    
  6.528 ±   0.013  us/op
   EndpointRegistryScalabilityTest.testReadOnlyValues_8            avgt   10    
  7.064 ±   0.026  us/op
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to