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