Skip to content

Commit

Permalink
Fixes #852: adds a [[nodiscard]] to BundleContext::RegisterService (#863
Browse files Browse the repository at this point in the history
)

* noDiscard update first push

* Jeff's comments, c++14 in cmakelists for makefile test, comments to reference nodiscard
  • Loading branch information
tcormackMW committed May 19, 2023
1 parent 062fd47 commit 6ca5c26
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,8 @@ namespace cppmicroservices
auto iMap = std::make_shared<InterfaceMap>();
auto obj = std::make_shared<double>();
iMap->insert(std::make_pair("double", std::static_pointer_cast<void>(obj)));
fc.RegisterService(iMap);
auto reg = fc.RegisterService(iMap);
US_UNUSED(reg);

auto sRef = fc.GetServiceReference("double");
EXPECT_TRUE(static_cast<bool>(sRef));
Expand Down
2 changes: 1 addition & 1 deletion doc/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ if(US_BUILD_TESTING)
if(UNIX AND NOT APPLE AND BUILD_SHARED_LIBS)
set(US_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${US_CXX_FLAGS}")
# We need to supply the correct language flag to the Makefile
set(US_CXX_VER_FLAGS -std=c++14)
set(US_CXX_VER_FLAGS -std=c++17)
usFunctionCheckCompilerFlags(${US_CXX_VER_FLAGS} _have_cxx14)
if(NOT _have_cxx14)
set(US_CXX_VER_FLAGS -std=c++0x)
Expand Down
12 changes: 9 additions & 3 deletions framework/include/cppmicroservices/BundleContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,9 @@ namespace cppmicroservices
* no properties.
* @return A <code>ServiceRegistration</code> object for use by the bundle
* registering the service to update the service's properties or to
* unregister the service.
* unregister the service. This object cannot be called from a discard-value
* expression as the intent is for the <code>ServiceRegistration</code>
* object is intended to be stored by the caller
*
* @throws std::runtime_error If this BundleContext is no longer valid, or if there are
case variants of the same key in the supplied properties map.
Expand All @@ -303,8 +305,8 @@ namespace cppmicroservices
* @see ServiceFactory
* @see PrototypeServiceFactory
*/
ServiceRegistrationU RegisterService(InterfaceMapConstPtr const& service,
ServiceProperties const& properties = ServiceProperties());
[[nodiscard]] ServiceRegistrationU RegisterService(InterfaceMapConstPtr const& service,
ServiceProperties const& properties = ServiceProperties());

/**
* Registers the specified service object with the specified properties
Expand Down Expand Up @@ -455,8 +457,10 @@ namespace cppmicroservices
{
auto& clazz = us_service_interface_iid<S>();
if (clazz.empty())
{
throw ServiceException("The service interface class has no "
"CPPMICROSERVICES_DECLARE_SERVICE_INTERFACE macro");
}
using BaseVectorT = std::vector<ServiceReferenceU>;
BaseVectorT serviceRefs = GetServiceReferences(clazz, filter);
std::vector<ServiceReference<S>> result;
Expand Down Expand Up @@ -521,8 +525,10 @@ namespace cppmicroservices
{
auto& clazz = us_service_interface_iid<S>();
if (clazz.empty())
{
throw ServiceException("The service interface class has no "
"CPPMICROSERVICES_DECLARE_SERVICE_INTERFACE macro");
}
return ServiceReference<S>(GetServiceReference(clazz));
}

Expand Down
15 changes: 9 additions & 6 deletions framework/test/bench/ServiceRegistryTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,9 @@ BENCHMARK_DEFINE_F(ServiceRegistryFixture, RegisterServices)
{
InterfaceMapPtr iMapCopy(std::make_shared<InterfaceMap>(*interfaceMap));
auto start = high_resolution_clock::now();
(void)fc.RegisterService(iMapCopy); // benchmark the call to RegisterService
auto reg = fc.RegisterService(iMapCopy); // benchmark the call to RegisterService
auto end = high_resolution_clock::now();
US_UNUSED(reg);
auto elapsed_seconds = duration_cast<duration<double>>(end - start);
state.SetIterationTime(elapsed_seconds.count());
}
Expand Down Expand Up @@ -118,12 +119,13 @@ BENCHMARK_DEFINE_F(ServiceRegistryFixture, RegisterServicesWithRank)
{
InterfaceMapPtr iMapCopy(std::make_shared<InterfaceMap>(*interfaceMap));
auto start = std::chrono::high_resolution_clock::now();
(void)fc.RegisterService(iMapCopy,
{
{Constants::SERVICE_RANKING,
Any(static_cast<int>(i))}
auto reg = fc.RegisterService(iMapCopy,
{
{Constants::SERVICE_RANKING,
Any(static_cast<int>(i))}
}); // benchmark the call to RegisterService
auto end = std::chrono::high_resolution_clock::now();
US_UNUSED(reg);
auto elapsed_seconds = std::chrono::duration_cast<std::chrono::duration<double>>(end - start);
state.SetIterationTime(elapsed_seconds.count());
}
Expand All @@ -147,11 +149,12 @@ BENCHMARK_DEFINE_F(ServiceRegistryFixture, FindServices)
auto regCount = state.range(0);
auto interfaceCount = state.range(1);
auto interfaceMap = MakeInterfaceMapWithNInterfaces(interfaceCount);
std::vector<ServiceRegistrationU> regs;

for (auto i = regCount; i > 0; --i)
{
InterfaceMapPtr iMapCopy(std::make_shared<InterfaceMap>(*interfaceMap));
fc.RegisterService(iMapCopy);
regs.emplace_back(fc.RegisterService(iMapCopy));
}

for (auto _ : state)
Expand Down
3 changes: 2 additions & 1 deletion framework/test/gtest/ServiceReferenceTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,8 @@ TEST_F(ServiceReferenceTest, TestRegisterAndGetServiceReferenceTest)

InterfaceMap im;
im["ServiceNS::ITestServiceB"] = std::make_shared<TestServiceB>();
(void)context.RegisterService(std::make_shared<InterfaceMap const>(im));
auto reg = context.RegisterService(std::make_shared<InterfaceMap const>(im));
US_UNUSED(reg);

auto sr3 = context.GetServiceReference("ServiceNS::ITestServiceB");
ASSERT_EQ(sr3.GetInterfaceId(), "ServiceNS::ITestServiceB");
Expand Down

1 comment on commit 6ca5c26

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'C++ Benchmark'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 0.20.

Benchmark suite Current: 6ca5c26 Previous: 062fd47 Ratio
ServiceRegistryFixture/RegisterServices/1/1/manual_time 40016.686126737135 ns/iter 40395.22533362488 ns/iter 0.99
ServiceRegistryFixture/RegisterServices/4/1/manual_time 162254.67775467612 ns/iter 164187.4102079382 ns/iter 0.99
ServiceRegistryFixture/RegisterServices/16/1/manual_time 628507.3999999918 ns/iter 649272.5000000022 ns/iter 0.97
ServiceRegistryFixture/RegisterServices/64/1/manual_time 2567604.8387096343 ns/iter 2665988.1967213238 ns/iter 0.96
ServiceRegistryFixture/RegisterServices/256/1/manual_time 10488024.137930956 ns/iter 10679338.3720931 ns/iter 0.98
ServiceRegistryFixture/RegisterServices/1000/1/manual_time 39947894.73684169 ns/iter 40347416.6666668 ns/iter 0.99
ServiceRegistryFixture/RegisterServices/1/4/manual_time 121486.58681058246 ns/iter 119976.92895339939 ns/iter 1.01
ServiceRegistryFixture/RegisterServices/4/4/manual_time 470883.8607594933 ns/iter 468409.32415519445 ns/iter 1.01
ServiceRegistryFixture/RegisterServices/16/4/manual_time 1897532.4999999993 ns/iter 1885018.3406113489 ns/iter 1.01
ServiceRegistryFixture/RegisterServices/64/4/manual_time 7928369.047619026 ns/iter 7646454.961832078 ns/iter 1.04
ServiceRegistryFixture/RegisterServices/256/4/manual_time 30362730.76923081 ns/iter 30213650.000000015 ns/iter 1.00
ServiceRegistryFixture/RegisterServices/1000/4/manual_time 122070937.49999996 ns/iter 120170450.0000001 ns/iter 1.02
ServiceRegistryFixture/RegisterServices/1/16/manual_time 384096.2113659031 ns/iter 377759.6626506037 ns/iter 1.02
ServiceRegistryFixture/RegisterServices/4/16/manual_time 1590345.3608247428 ns/iter 1547999.4974874388 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/16/16/manual_time 5989650.000000006 ns/iter 5851873.000000005 ns/iter 1.02
ServiceRegistryFixture/RegisterServices/64/16/manual_time 25046582.352941185 ns/iter 24323005.882352956 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/256/16/manual_time 102430030.00000009 ns/iter 101627839.99999994 ns/iter 1.01
ServiceRegistryFixture/RegisterServices/1000/16/manual_time 382940000 ns/iter 379707899.9999999 ns/iter 1.01
ServiceRegistryFixture/RegisterServices/1/64/manual_time 1335135.5995055628 ns/iter 1298931.5347721844 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/4/64/manual_time 5104475.675675673 ns/iter 4953189.40397351 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/16/64/manual_time 21069173.33333335 ns/iter 20471632.60869564 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/64/64/manual_time 82775289.99999999 ns/iter 79893109.99999991 ns/iter 1.04
ServiceRegistryFixture/RegisterServices/256/64/manual_time 339414500.00000006 ns/iter 332586566.66666645 ns/iter 1.02
ServiceRegistryFixture/RegisterServices/1000/64/manual_time 1381347800.000001 ns/iter 1334817499.9999983 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/1/256/manual_time 4126954.228855723 ns/iter 3997308.9108910905 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/4/256/manual_time 17423359.999999993 ns/iter 16935311.940298513 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/16/256/manual_time 62913480.00000002 ns/iter 60874709.99999996 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/64/256/manual_time 277942725 ns/iter 267712125.00000003 ns/iter 1.04
ServiceRegistryFixture/RegisterServices/256/256/manual_time 1103292500 ns/iter 1066902899.9999994 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/1000/256/manual_time 5540018499.999999 ns/iter 5369601399.999989 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/1/1000/manual_time 14319848.181818182 ns/iter 13875917.391304348 ns/iter 1.03
ServiceRegistryFixture/RegisterServices/4/1000/manual_time 48572137.50000001 ns/iter 47921647.058823526 ns/iter 1.01
ServiceRegistryFixture/RegisterServices/16/1000/manual_time 221685250 ns/iter 224709616.66666666 ns/iter 0.99
ServiceRegistryFixture/RegisterServices/64/1000/manual_time 771679399.9999998 ns/iter 757181199.9999999 ns/iter 1.02
ServiceRegistryFixture/RegisterServices/256/1000/manual_time 4322048200.000002 ns/iter 4280740799.9999976 ns/iter 1.01
ServiceRegistryFixture/RegisterServices/1000/1000/manual_time 21766397700.000008 ns/iter 21393849599.999992 ns/iter 1.02
ServiceRegistryFixture/RegisterServicesWithRank/1/1/manual_time 38886.639591794075 ns/iter 39382.858200666444 ns/iter 0.99
ServiceRegistryFixture/RegisterServicesWithRank/4/1/manual_time 207050.75942246386 ns/iter 202862.00073964612 ns/iter 1.02
ServiceRegistryFixture/RegisterServicesWithRank/16/1/manual_time 794300.7000000007 ns/iter 787573.1999999963 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/64/1/manual_time 3527441.4893617076 ns/iter 3479913.4057971 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/256/1/manual_time 15959608.045976963 ns/iter 15879393.023255762 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/1000/1/manual_time 53041231.25000005 ns/iter 53683412.49999978 ns/iter 0.99
ServiceRegistryFixture/RegisterServicesWithRank/1/4/manual_time 117347.03190542823 ns/iter 117693.82079033456 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/4/4/manual_time 501157.5159235671 ns/iter 493817.6322418139 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/16/4/manual_time 2197668.8888888876 ns/iter 2158473.2300885026 ns/iter 1.02
ServiceRegistryFixture/RegisterServicesWithRank/64/4/manual_time 9444149.62406013 ns/iter 9336864.885496179 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/256/4/manual_time 35310907.692307726 ns/iter 34653015.384615466 ns/iter 1.02
ServiceRegistryFixture/RegisterServicesWithRank/1000/4/manual_time 141823599.9999998 ns/iter 139611700.0000001 ns/iter 1.02
ServiceRegistryFixture/RegisterServicesWithRank/1/16/manual_time 376253.31695331767 ns/iter 376586.1969111974 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/4/16/manual_time 1578042.047244094 ns/iter 1561412.0243531172 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/16/16/manual_time 5931610.999999993 ns/iter 5892053.999999994 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/64/16/manual_time 25463614.285714287 ns/iter 25555347.222222224 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/256/16/manual_time 104566450 ns/iter 104648930.00000001 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/1000/16/manual_time 379965800.0000003 ns/iter 379752149.9999992 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/1/64/manual_time 1301721.5736040608 ns/iter 1301320.6683168304 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/4/64/manual_time 4748927.439024387 ns/iter 4708232.12121212 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/16/64/manual_time 20337422.44897959 ns/iter 20108866.666666657 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/64/64/manual_time 78627010.00000003 ns/iter 78533929.99999996 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/256/64/manual_time 328593933.3333335 ns/iter 323816766.6666665 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/1000/64/manual_time 1345831499.9999993 ns/iter 1319476699.9999986 ns/iter 1.02
ServiceRegistryFixture/RegisterServicesWithRank/1/256/manual_time 4072742.2885572133 ns/iter 4034522.43902439 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/4/256/manual_time 16190845.333333343 ns/iter 16283158.441558449 ns/iter 0.99
ServiceRegistryFixture/RegisterServicesWithRank/16/256/manual_time 58931359.999999985 ns/iter 58730380 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/64/256/manual_time 262707425 ns/iter 263864925.0000001 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/256/256/manual_time 1081296299.9999995 ns/iter 1081780300.0000005 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/1000/256/manual_time 5399945200.000006 ns/iter 5380364899.999999 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/1/1000/manual_time 13795963.157894736 ns/iter 13865294.782608695 ns/iter 0.99
ServiceRegistryFixture/RegisterServicesWithRank/4/1000/manual_time 44729521.05263157 ns/iter 44304852.631578945 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/16/1000/manual_time 198606766.66666666 ns/iter 197559533.33333334 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/64/1000/manual_time 748616100 ns/iter 743016500 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/256/1000/manual_time 4213080899.9999976 ns/iter 4250812100 ns/iter 0.99
ServiceRegistryFixture/RegisterServicesWithRank/1000/1000/manual_time 21387460599.999992 ns/iter 21450593899.999977 ns/iter 1.00
ServiceRegistryFixture/FindServices/1/1 2469.8953571430593 ns/iter 2539.269681894353 ns/iter 0.97
ServiceRegistryFixture/FindServices/4/1 4647.3294796190685 ns/iter 4803.041877715854 ns/iter 0.97
ServiceRegistryFixture/FindServices/16/1 13503.714492344534 ns/iter 13479.889285715022 ns/iter 1.00
ServiceRegistryFixture/FindServices/64/1 50018.4900000022 ns/iter 48984.85330750077 ns/iter 1.02
ServiceRegistryFixture/FindServices/256/1 181438.11947500895 ns/iter 178744.0707095571 ns/iter 1.02
ServiceRegistryFixture/FindServices/1000/1 680244.6428571735 ns/iter 676849.7767856627 ns/iter 1.01
ServiceRegistryFixture/FindServices/1/4 10025.014062499336 ns/iter 10099.435937497958 ns/iter 0.99
ServiceRegistryFixture/FindServices/4/4 18459.429994912945 ns/iter 18989.89365976952 ns/iter 0.97
ServiceRegistryFixture/FindServices/16/4 54171.880000012614 ns/iter 53651.41964286327 ns/iter 1.01
ServiceRegistryFixture/FindServices/64/4 196115.08170368627 ns/iter 196453.52263596543 ns/iter 1.00
ServiceRegistryFixture/FindServices/256/4 722427.5000000701 ns/iter 720831.250000182 ns/iter 1.00
ServiceRegistryFixture/FindServices/1000/4 2722965.863453845 ns/iter 2725241.2878788095 ns/iter 1.00
ServiceRegistryFixture/FindServices/1/16 40062.741570432314 ns/iter 40992.089838073414 ns/iter 0.98
ServiceRegistryFixture/FindServices/4/16 74486.33928570965 ns/iter 76459.12946429182 ns/iter 0.97
ServiceRegistryFixture/FindServices/16/16 216206.40625002352 ns/iter 216392.31249999112 ns/iter 1.00
ServiceRegistryFixture/FindServices/64/16 784098.102678448 ns/iter 784199.2187499005 ns/iter 1.00
ServiceRegistryFixture/FindServices/256/16 2893442.7966105123 ns/iter 2862755.508474647 ns/iter 1.01
ServiceRegistryFixture/FindServices/1000/16 10939449.99999863 ns/iter 10861712.499998787 ns/iter 1.01
ServiceRegistryFixture/FindServices/1/64 163047.41071425812 ns/iter 164822.19494227247 ns/iter 0.99
ServiceRegistryFixture/FindServices/4/64 298309.6692111948 ns/iter 304573.88392863196 ns/iter 0.98
ServiceRegistryFixture/FindServices/16/64 872659.2633929085 ns/iter 862405.6919642901 ns/iter 1.01
ServiceRegistryFixture/FindServices/64/64 3135093.750000603 ns/iter 3139778.5714284102 ns/iter 1.00
ServiceRegistryFixture/FindServices/256/64 11658312.500003377 ns/iter 11641326.785715071 ns/iter 1.00
ServiceRegistryFixture/FindServices/1000/64 43707486.66666865 ns/iter 43952337.50000216 ns/iter 0.99
ServiceRegistryFixture/FindServices/1/256 653120.0892857619 ns/iter 682927.499999916 ns/iter 0.96
ServiceRegistryFixture/FindServices/4/256 1235403.2812499583 ns/iter 1286887.678571296 ns/iter 0.96
ServiceRegistryFixture/FindServices/16/256 3583016.410256954 ns/iter 3795937.9888259047 ns/iter 0.94
ServiceRegistryFixture/FindServices/64/256 13120021.428570842 ns/iter 13304754.000000684 ns/iter 0.99
ServiceRegistryFixture/FindServices/256/256 49205699.99999316 ns/iter 49111407.142861806 ns/iter 1.00
ServiceRegistryFixture/FindServices/1000/256 183752949.9999846 ns/iter 187992474.99998727 ns/iter 0.98
ServiceRegistryFixture/FindServices/1/1000 2629798.8636363726 ns/iter 2737615.1515153255 ns/iter 0.96
ServiceRegistryFixture/FindServices/4/1000 4900296.551723558 ns/iter 5100795.999999264 ns/iter 0.96
ServiceRegistryFixture/FindServices/16/1000 15300102.000001062 ns/iter 14567675.999996936 ns/iter 1.05
ServiceRegistryFixture/FindServices/64/1000 52286827.272734046 ns/iter 53469459.99999662 ns/iter 0.98
ServiceRegistryFixture/FindServices/256/1000 196857633.33329 ns/iter 196478950.0000279 ns/iter 1.00
ServiceRegistryFixture/FindServices/1000/1000 731095800.0000483 ns/iter 751081499.9998274 ns/iter 0.97
ServiceRegistryFixture/UnregisterServices/1/1/manual_time 3078.93142372397 ns/iter 2986.7003923309935 ns/iter 1.03
ServiceRegistryFixture/UnregisterServices/4/1/manual_time 12516.992001670662 ns/iter 11852.303568983521 ns/iter 1.06
ServiceRegistryFixture/UnregisterServices/16/1/manual_time 50084.647332531706 ns/iter 48740.53116973041 ns/iter 1.03
ServiceRegistryFixture/UnregisterServices/64/1/manual_time 215140.35957828953 ns/iter 211684.84299496413 ns/iter 1.02
ServiceRegistryFixture/UnregisterServices/256/1/manual_time 1085526.1205562649 ns/iter 1095384.7352022857 ns/iter 0.99
ServiceRegistryFixture/UnregisterServices/1000/1/manual_time 7624877.419354888 ns/iter 8305554.3209876735 ns/iter 0.92
ServiceRegistryFixture/UnregisterServices/1/4/manual_time 3656.5232793799782 ns/iter 3547.578456986813 ns/iter 1.03
ServiceRegistryFixture/UnregisterServices/4/4/manual_time 14271.065063564914 ns/iter 13593.276457833392 ns/iter 1.05
ServiceRegistryFixture/UnregisterServices/16/4/manual_time 57931.99672668546 ns/iter 91661.60409555411 ns/iter 0.63
ServiceRegistryFixture/UnregisterServices/64/4/manual_time 267575.3456221558 ns/iter 264170.05287010263 ns/iter 1.01
ServiceRegistryFixture/UnregisterServices/256/4/manual_time 1600458.1235697747 ns/iter 1653147.0023980364 ns/iter 0.97
ServiceRegistryFixture/UnregisterServices/1000/4/manual_time 14287900.000000099 ns/iter 15705102.222222323 ns/iter 0.91
ServiceRegistryFixture/UnregisterServices/1/16/manual_time 5815.547592042496 ns/iter 5907.773482560596 ns/iter 0.98
ServiceRegistryFixture/UnregisterServices/4/16/manual_time 20347.11680203443 ns/iter 20742.024467013147 ns/iter 0.98
ServiceRegistryFixture/UnregisterServices/16/16/manual_time 86836.03972686094 ns/iter 91335.84587440864 ns/iter 0.95
ServiceRegistryFixture/UnregisterServices/64/16/manual_time 474978.260869573 ns/iter 490081.6526610753 ns/iter 0.97
ServiceRegistryFixture/UnregisterServices/256/16/manual_time 3796948.108108181 ns/iter 4072442.4418605287 ns/iter 0.93
ServiceRegistryFixture/UnregisterServices/1000/16/manual_time 40899900.00000018 ns/iter 45033819.99999998 ns/iter 0.91
ServiceRegistryFixture/UnregisterServices/1/64/manual_time 14338.750233400182 ns/iter 15314.631530566943 ns/iter 0.94
ServiceRegistryFixture/UnregisterServices/4/64/manual_time 45701.1426705817 ns/iter 49261.56873770162 ns/iter 0.93
ServiceRegistryFixture/UnregisterServices/16/64/manual_time 206187.80416300226 ns/iter 225215.1612903154 ns/iter 0.92
ServiceRegistryFixture/UnregisterServices/64/64/manual_time 1301850.7434944406 ns/iter 1427059.2975206564 ns/iter 0.91
ServiceRegistryFixture/UnregisterServices/256/64/manual_time 12146353.44827584 ns/iter 13439215.094339726 ns/iter 0.90
ServiceRegistryFixture/UnregisterServices/1000/64/manual_time 146613980.00000042 ns/iter 159818075.00000027 ns/iter 0.92
ServiceRegistryFixture/UnregisterServices/1/256/manual_time 82713.22845906377 ns/iter 88421.73365251429 ns/iter 0.94
ServiceRegistryFixture/UnregisterServices/4/256/manual_time 268062.2137404592 ns/iter 292514.2916321453 ns/iter 0.92
ServiceRegistryFixture/UnregisterServices/16/256/manual_time 1178445.7429048473 ns/iter 1338691.8699187008 ns/iter 0.88
ServiceRegistryFixture/UnregisterServices/64/256/manual_time 6758734.951456305 ns/iter 7750499.999999987 ns/iter 0.87
ServiceRegistryFixture/UnregisterServices/256/256/manual_time 53942438.46153859 ns/iter 60519349.99999993 ns/iter 0.89
ServiceRegistryFixture/UnregisterServices/1000/256/manual_time 610615700.0000011 ns/iter 679309899.9999987 ns/iter 0.90
ServiceRegistryFixture/UnregisterServices/1/1000/manual_time 364909.7112860897 ns/iter 401515.38461538404 ns/iter 0.91
ServiceRegistryFixture/UnregisterServices/4/1000/manual_time 1250924.416517055 ns/iter 1448183.4677419353 ns/iter 0.86
ServiceRegistryFixture/UnregisterServices/16/1000/manual_time 5797821.666666661 ns/iter 7053853.535353521 ns/iter 0.82
ServiceRegistryFixture/UnregisterServices/64/1000/manual_time 31818722.72727277 ns/iter 37113536.84210529 ns/iter 0.86
ServiceRegistryFixture/UnregisterServices/256/1000/manual_time 237369133.33333337 ns/iter 272871133.3333337 ns/iter 0.87
ServiceRegistryFixture/UnregisterServices/1000/1000/manual_time 2580449300.0000024 ns/iter 3039722900.0000024 ns/iter 0.85
ServiceRegistryFixture/ModifyServices/1/1/manual_time 6278.89980660319 ns/iter 5837.941988137132 ns/iter 1.08
ServiceRegistryFixture/ModifyServices/4/1/manual_time 24781.75190157294 ns/iter 23359.27238043495 ns/iter 1.06
ServiceRegistryFixture/ModifyServices/16/1/manual_time 103020.40422053752 ns/iter 94057.1028411366 ns/iter 1.10
ServiceRegistryFixture/ModifyServices/64/1/manual_time 440365.6065959959 ns/iter 383597.732181426 ns/iter 1.15
ServiceRegistryFixture/ModifyServices/256/1/manual_time 1609293.333333334 ns/iter 1524641.4634146343 ns/iter 1.06
ServiceRegistryFixture/ModifyServices/1000/1/manual_time 6581338.181818182 ns/iter 6120948.648648649 ns/iter 1.08
ServiceRegistryFixture/ModifyServices/1/4/manual_time 6264.642169806823 ns/iter 6009.427643854211 ns/iter 1.04
ServiceRegistryFixture/ModifyServices/4/4/manual_time 25373.935164993334 ns/iter 23934.635265123277 ns/iter 1.06
ServiceRegistryFixture/ModifyServices/16/4/manual_time 110708.87794688263 ns/iter 96207.92896098361 ns/iter 1.15
ServiceRegistryFixture/ModifyServices/64/4/manual_time 485500.78597339854 ns/iter 390148.1274455 ns/iter 1.24
ServiceRegistryFixture/ModifyServices/256/4/manual_time 1731082.396088017 ns/iter 1594466.9662921352 ns/iter 1.09
ServiceRegistryFixture/ModifyServices/1000/4/manual_time 6506349.541284402 ns/iter 6329587.037037036 ns/iter 1.03
ServiceRegistryFixture/ModifyServices/1/16/manual_time 6788.300686589403 ns/iter 6738.595767543625 ns/iter 1.01
ServiceRegistryFixture/ModifyServices/4/16/manual_time 27359.486072968277 ns/iter 26997.716912470707 ns/iter 1.01
ServiceRegistryFixture/ModifyServices/16/16/manual_time 110741.79768143548 ns/iter 108612.55302435406 ns/iter 1.02
ServiceRegistryFixture/ModifyServices/64/16/manual_time 526073.3044733036 ns/iter 447358.2860743546 ns/iter 1.18
ServiceRegistryFixture/ModifyServices/256/16/manual_time 1934436.5122615804 ns/iter 1871305.0802139041 ns/iter 1.03
ServiceRegistryFixture/ModifyServices/1000/16/manual_time 7246430.303030299 ns/iter 7354303.370786517 ns/iter 0.99
ServiceRegistryFixture/ModifyServices/1/64/manual_time 9304.28421038558 ns/iter 9912.382905213197 ns/iter 0.94
ServiceRegistryFixture/ModifyServices/4/64/manual_time 37513.59238955404 ns/iter 39984.70264502867 ns/iter 0.94
ServiceRegistryFixture/ModifyServices/16/64/manual_time 161539.01987979733 ns/iter 158249.70694319214 ns/iter 1.02
ServiceRegistryFixture/ModifyServices/64/64/manual_time 641995.0391644911 ns/iter 639772.4729241879 ns/iter 1.00
ServiceRegistryFixture/ModifyServices/256/64/manual_time 2523245.3571428587 ns/iter 2608890.9433962274 ns/iter 0.97
ServiceRegistryFixture/ModifyServices/1000/64/manual_time 9782006.849315071 ns/iter 11380885.483870966 ns/iter 0.86
ServiceRegistryFixture/ModifyServices/1/256/manual_time 40141.71003717372 ns/iter 43768.068978585245 ns/iter 0.92
ServiceRegistryFixture/ModifyServices/4/256/manual_time 163470.83430165006 ns/iter 175075.9151729383 ns/iter 0.93
ServiceRegistryFixture/ModifyServices/16/256/manual_time 651350.976744186 ns/iter 706991.8781725898 ns/iter 0.92
ServiceRegistryFixture/ModifyServices/64/256/manual_time 2704942.5287356325 ns/iter 2955227.753303964 ns/iter 0.92
ServiceRegistryFixture/ModifyServices/256/256/manual_time 11038098.461538464 ns/iter 12578614.035087721 ns/iter 0.88
ServiceRegistryFixture/ModifyServices/1000/256/manual_time 43652868.75000001 ns/iter 49176550 ns/iter 0.89
ServiceRegistryFixture/ModifyServices/1/1000/manual_time 174502.38746580534 ns/iter 189565.85432639724 ns/iter 0.92
ServiceRegistryFixture/ModifyServices/4/1000/manual_time 700416.1809045215 ns/iter 766236.7280606726 ns/iter 0.91
ServiceRegistryFixture/ModifyServices/16/1000/manual_time 2839669.1056910567 ns/iter 3171436.1607142882 ns/iter 0.90
ServiceRegistryFixture/ModifyServices/64/1000/manual_time 11642138.333333338 ns/iter 13238699.999999996 ns/iter 0.88
ServiceRegistryFixture/ModifyServices/256/1000/manual_time 47645806.666666664 ns/iter 53176014.285714276 ns/iter 0.90
ServiceRegistryFixture/ModifyServices/1000/1000/manual_time 191064300.00000003 ns/iter 215353233.33333334 ns/iter 0.89
ServiceTrackerFixture/OpenServiceTrackerWithSvcRef/manual_time 6654.048156655885 ns/iter 6462.424896736553 ns/iter 1.03
ServiceTrackerFixture/OpenServiceTrackerWithBundleContext/manual_time 9192.630587108964 ns/iter 8142.803557664262 ns/iter 1.13
ServiceTrackerFixture/OpenServiceTrackerWithInterfaceName/manual_time 8238.148122035142 ns/iter 8137.392241379825 ns/iter 1.01
CloseServiceTracker/1000 7121.637276783183 ns/iter 8559.672991072122 ns/iter 0.83
CloseServiceTracker/1024 7082.856250000142 ns/iter 7164.191964282703 ns/iter 0.99
CloseServiceTracker/2048 7044.645089285342 ns/iter 7110.562499999925 ns/iter 0.99
CloseServiceTracker/4096 7177.618303571316 ns/iter 7248.220535716752 ns/iter 0.99
CloseServiceTracker/8192 7237.234821429541 ns/iter 7361.659598217329 ns/iter 0.98
CloseServiceTracker/16384 7272.290178568548 ns/iter 7313.752232143144 ns/iter 0.99
CloseServiceTracker/32768 7280.610714287507 ns/iter 7412.325892859023 ns/iter 0.98
CloseServiceTracker/65536 7488.096428573953 ns/iter 7685.409821427973 ns/iter 0.97
CloseServiceTracker/131072 7589.749999995986 ns/iter 7802.919642857985 ns/iter 0.97
CloseServiceTracker/262144 7589.070312497321 ns/iter 7919.599019645077 ns/iter 0.96
CloseServiceTracker/524288 7588.370535712232 ns/iter 8073.899553571502 ns/iter 0.94
CloseServiceTracker/1000000 7867.681919643742 ns/iter 8480.48325893152 ns/iter 0.93
ServiceTrackerFixture/ServiceTrackerScalability/1 45307.292231675485 ns/iter 47312.642413245536 ns/iter 0.96
ServiceTrackerFixture/ServiceTrackerScalability/4000 23759513.333334327 ns/iter 27423748.00000107 ns/iter 0.87
ServiceTrackerFixture/ServiceTrackerScalability/10000 66510345.45455497 ns/iter 76689581.81821753 ns/iter 0.87
ServiceTrackerFixture/MultipleImplOneInterfaceServiceTrackerScalability/1 44870.14375001763 ns/iter 48051.721905747836 ns/iter 0.93
ServiceTrackerFixture/MultipleImplOneInterfaceServiceTrackerScalability/4000 179421100.0000132 ns/iter 188396249.9999825 ns/iter 0.95
ServiceTrackerFixture/MultipleImplOneInterfaceServiceTrackerScalability/10000 462344199.9999614 ns/iter 484474150.00009644 ns/iter 0.95
ServiceTrackerFixture/ServiceTrackerScalabilityWithLDAPFilter/1 40984.421706749345 ns/iter 42725.515615794095 ns/iter 0.96
ServiceTrackerFixture/ServiceTrackerScalabilityWithLDAPFilter/4000 3167794.196428986 ns/iter 3367887.793426999 ns/iter 0.94
ServiceTrackerFixture/ServiceTrackerScalabilityWithLDAPFilter/10000 9558010.666666329 ns/iter 11357951.562494861 ns/iter 0.84
AnyMapPerfTestFixture/HappyPath/1 418.62145452582735 ns/iter 436.0171249999212 ns/iter 0.96
AnyMapPerfTestFixture/HappyPath/3 1211.9105357141636 ns/iter 1283.477499999565 ns/iter 0.94
AnyMapPerfTestFixture/HappyPath/7 2750.377377822205 ns/iter 2906.904684417911 ns/iter 0.95
AnyMapPerfTestFixture/HappyPath/11 4344.710624999948 ns/iter 4564.179384327166 ns/iter 0.95
AnyMapPerfTestFixture/HappyPath/15 6009.251785712877 ns/iter 6219.052678570084 ns/iter 0.97
AnyMapPerfTestFixture/HappyPath/18 7099.708705357192 ns/iter 7407.103794641045 ns/iter 0.96
AnyMapPerfTestFixture/HappyPath/20 7890.782366075656 ns/iter 8283.19337860277 ns/iter 0.95
AnyMapPerfTestFixture/ErrorPath/1 5640.918749999661 ns/iter 5704.616964286353 ns/iter 0.99
AnyMapPerfTestFixture/ErrorPath/3 7917.642857141313 ns/iter 8155.147321429825 ns/iter 0.97
AnyMapPerfTestFixture/ErrorPath/7 12220.574999998591 ns/iter 12602.491071423368 ns/iter 0.97
AnyMapPerfTestFixture/ErrorPath/11 16689.01465857435 ns/iter 17199.776561005154 ns/iter 0.97
AnyMapPerfTestFixture/ErrorPath/15 20963.793749999128 ns/iter 22162.22187500705 ns/iter 0.95
AnyMapPerfTestFixture/ErrorPath/18 24061.516054506134 ns/iter 25349.232142860143 ns/iter 0.95
AnyMapPerfTestFixture/ErrorPath/20 26290.35357142584 ns/iter 28023.339627960977 ns/iter 0.94
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/1 650.2272321426972 ns/iter 663.5162499999784 ns/iter 0.98
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/3 1719.7069196431667 ns/iter 1781.5336442266025 ns/iter 0.97
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/7 4022.900137678304 ns/iter 3953.280753069828 ns/iter 1.02
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/11 5944.225892855165 ns/iter 6206.749107142124 ns/iter 0.96
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/15 8091.734374998184 ns/iter 8453.95424107157 ns/iter 0.96
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/18 9666.939062498159 ns/iter 10169.94790201623 ns/iter 0.95
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/20 10772.949999996228 ns/iter 11249.412499999778 ns/iter 0.96
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/1 418.32468589868796 ns/iter 423.99631249992353 ns/iter 0.99
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/3 1507.8131696424994 ns/iter 1546.9636160716504 ns/iter 0.97
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/7 3597.5326388838093 ns/iter 3718.0513963388116 ns/iter 0.97
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/11 5751.201785711503 ns/iter 5970.739285714899 ns/iter 0.96
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/15 7848.2064732148565 ns/iter 8187.637276785762 ns/iter 0.96
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/18 9579.369734955084 ns/iter 9848.337499995807 ns/iter 0.97
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/20 10509.684374994777 ns/iter 10940.529687502476 ns/iter 0.96
BundleInstallFixture/BundleInstallCppFramework/manual_time 213313.9541984739 ns/iter 257813.03211351702 ns/iter 0.83
BundleInstallFixture/LargeBundleInstallCppFramework/manual_time 208850.95715587953 ns/iter 257252.82465150332 ns/iter 0.81
ConstructFilterFromString 598.2750892858998 ns/iter 616.31803571426 ns/iter 0.97
ConstructNonTrivialFilterFromString 937.1853851847015 ns/iter 970.4557721181144 ns/iter 0.97
MatchFilterWithAnyMap/Simple 422.57543749997234 ns/iter 404.14090606503294 ns/iter 1.05
MatchFilterWithAnyMap/Complex 468.10383216619636 ns/iter 449.67633937247615 ns/iter 1.04
MatchFilterWithBundle/Simple 203.45149984597495 ns/iter 214.46303124989186 ns/iter 0.95
MatchFilterWithBundle/Complex 327.7785512154208 ns/iter 348.6778886289061 ns/iter 0.94
MatchFilterWithServiceReference/Simple 195.50005316973036 ns/iter 198.2605246311866 ns/iter 0.99
MatchFilterWithServiceReference/Complex 240.86846642089205 ns/iter 244.28496428575792 ns/iter 0.99
ConstructFilterIncremental 2349.731975746516 ns/iter 2243.7634556220087 ns/iter 1.05
ConstructFilterNotOperator 1072.642155070614 ns/iter 974.9068862019348 ns/iter 1.10
ServiceFixture/GetServiceReferenceByInterface 1494.0109848167133 ns/iter 1558.3245535718709 ns/iter 0.96
ServiceFixture/GetServiceReferenceByClassName 1332.7565701977626 ns/iter 1398.8774112156 ns/iter 0.95
ServiceFixture/GetAllServiceReferencesByInterface 1361.3968475906997 ns/iter 1410.061111580332 ns/iter 0.97
ServiceFixture/GetAllServiceReferencesByClassName 1019.1965624997579 ns/iter 1073.6199999996643 ns/iter 0.95
ServiceFixture/GetAllServiceReferencesByClassNameAndLDAPFilter 723.245892856994 ns/iter 740.844642857143 ns/iter 0.98
ServiceFixture/GetAllServiceReferencesByInterfaceAndLDAPFilter 661.4596428570557 ns/iter 683.5423214283765 ns/iter 0.97

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.