Skip to content

Commit

Permalink
Fixes #840: removes manual reference counting (#841)
Browse files Browse the repository at this point in the history
* converted registration

* compiled, not passeD

* fixed weak_ptr error, now leaking mock objects

* fixed bug, need to decrement ref count

* updats from last week, test cases failing because of out of date expectations

* all tests are passing with shared and weak pointers to serviceRegistrationBasePrivate

* still passing tests, updated comments and cleaned up

* updating to share dependents

* new issue with dying service

* added coreInfo, maybe passing

* passing tests, removed manual ref counting from referenceBasePrivate, repeated all fast tests to ensure no sporadic failures

* updated comments

* updates before PR

* Removed manual reference counting

The manual reference counting in ServiceRegistrationBasePrivate and ServiceReferenceBasePrivate were removed. Additionally, some properties of ServiceRegistrationBasePrivate were offloaded to a new class ServiceRegistrationCoreInfo which both ServiceRegistrationBasePrivate and ServiceReferenceBasePrivate can access allowing ServiceReferenceBasePrivate to give up ownership of ServiceRegistrationBasePrivate.

Signed-off-by: Toby Cormack  <tcormack@mathworks.com>

* Removed manual reference counting and merged with upstream (#840)

The manual reference counting in ServiceRegistrationBasePrivate and ServiceReferenceBasePrivate were removed. Additionally, some properties of ServiceRegistrationBasePrivate were offloaded to a new class ServiceRegistrationCoreInfo which both ServiceRegistrationBasePrivate and ServiceReferenceBasePrivate can access allowing ServiceReferenceBasePrivate to give up ownership of ServiceRegistrationBasePrivate.

Signed-off-by: Toby Cormack  <tcormack@mathworks.com>

* ServiceRegistrationCoreInfo now default destructor

* Updated based on Patty's comments #840

* updated ServiceReferenceBase Constructors for clarity with shared_ptrs

* removed 'move' from serviceRegistry

* attempt at solving mac issue

* updates for lock type and removing unneccessary functions from reference

* lost lock

* changed to custom atomic load

* LockSet addition

* threading support in LockSet

* LockSet not threaded

* no names in func dec

* Incoorporated Jeff's Comments

* Assignment operator didn't fail on my computer, did in github

* updated for Jeff's 5/16 comments

* clang update

* mikes comments and fixes for multithreaded support

* remove ifdefs from BundleRegistry, abide by rule of (0,3,5), and add comments

---------

Signed-off-by: Toby Cormack  <tcormack@mathworks.com>
  • Loading branch information
tcormackMW committed May 19, 2023
1 parent d43df28 commit 062fd47
Show file tree
Hide file tree
Showing 25 changed files with 584 additions and 369 deletions.
1 change: 1 addition & 0 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Cpp11BracedListStyle: false
IndentCaseLabels: true
IndentGotoLabels: false
IndentPPDirectives: AfterHash
InsertBraces: true
NamespaceIndentation: All
PackConstructorInitializers: CurrentLine
PointerAlignment: Left
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ doc/src/examples/makefile/main
*.pyc
/build*
.vscode/
.venv/
.venv/
10 changes: 7 additions & 3 deletions framework/include/cppmicroservices/ServiceReferenceBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#define CPPMICROSERVICES_SERVICEREFERENCEBASE_H

#include "cppmicroservices/Any.h"
#include "cppmicroservices/detail/Threads.h"
#include <functional>

#include <atomic>
Expand Down Expand Up @@ -232,13 +233,16 @@ namespace cppmicroservices
*/
ServiceReferenceBase();

ServiceReferenceBase(ServiceRegistrationBasePrivate* reg);
ServiceReferenceBase(std::shared_ptr<ServiceRegistrationBasePrivate> reg);

void SetInterfaceId(std::string const& interfaceId);

// This class is not thread-safe, but we support thread-safe
// copying and assignment.
std::atomic<ServiceReferenceBasePrivate*> d;
// copying and assignment
// This was changed to a std::shared_ptr and is accessed through
// Load(), but when this repository uses c++20,
// this will be changed to std::atomic<shared_ptr>
cppmicroservices::detail::Atomic<std::shared_ptr<ServiceReferenceBasePrivate>> d;
};

/**
Expand Down
37 changes: 20 additions & 17 deletions framework/include/cppmicroservices/ServiceRegistrationBase.h
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
/*=============================================================================
/*=============================================================================
Library: CppMicroServices
Library: CppMicroServices
Copyright (c) The CppMicroServices developers. See the COPYRIGHT
file at the top-level directory of this distribution and at
https://github.com/CppMicroServices/CppMicroServices/COPYRIGHT .
Copyright (c) The CppMicroServices developers. See the COPYRIGHT
file at the top-level directory of this distribution and at
https://github.com/CppMicroServices/CppMicroServices/COPYRIGHT .
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
=============================================================================*/

Expand All @@ -30,6 +30,7 @@
namespace cppmicroservices
{

class ServiceRegistrationLocks;
class BundlePrivate;
class ServiceRegistrationBasePrivate;
class Properties;
Expand Down Expand Up @@ -196,11 +197,13 @@ namespace cppmicroservices
*/
ServiceRegistrationBase();

ServiceRegistrationBase(ServiceRegistrationBasePrivate* registrationPrivate);
ServiceRegistrationBase(std::shared_ptr<ServiceRegistrationBasePrivate> registrationPrivate);

ServiceRegistrationBase(BundlePrivate* bundle, InterfaceMapConstPtr const& service, Properties&& props);

ServiceRegistrationBasePrivate* d { nullptr };
std::shared_ptr<ServiceRegistrationLocks> LockServiceRegistration() const;

std::shared_ptr<ServiceRegistrationBasePrivate> d;
};

/**
Expand All @@ -224,7 +227,7 @@ namespace cppmicroservices
*/

US_HASH_FUNCTION_BEGIN(cppmicroservices::ServiceRegistrationBase)
return std::hash<cppmicroservices::ServiceRegistrationBasePrivate*>()(arg.d);
return std::hash<std::shared_ptr<cppmicroservices::ServiceRegistrationBasePrivate>>()(arg.d);
US_HASH_FUNCTION_END

#endif // CPPMICROSERVICES_SERVICEREGISTRATIONBASE_H
1 change: 1 addition & 0 deletions framework/include/cppmicroservices/detail/Threads.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ namespace cppmicroservices
UniqueLock&
operator=(UniqueLock&&)
{
return *this;
}
explicit UniqueLock(MutexLockingStrategy const&) {}
explicit UniqueLock(MutexLockingStrategy const*) {}
Expand Down
4 changes: 4 additions & 0 deletions framework/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ set(_srcs
util/SharedLibrary.cpp
util/SharedLibraryException.cpp
util/Utils.cpp
util/ServiceRegistrationLocks.cpp

service/ListenerToken.cpp
service/ServiceException.cpp
Expand All @@ -34,6 +35,7 @@ set(_srcs
service/ServiceReferenceBasePrivate.cpp
service/ServiceRegistrationBase.cpp
service/ServiceRegistrationBasePrivate.cpp
service/ServiceRegistrationCoreInfo.cpp
service/ServiceRegistry.cpp

bundle/Bundle.cpp
Expand Down Expand Up @@ -67,13 +69,15 @@ set(_private_headers
util/Properties.h
util/PropsCheck.h
util/Utils.h
util/ServiceRegistrationLocks.h

service/ServiceHooks.h
service/ServiceListenerEntry.h
service/ServiceListenerHookPrivate.h
service/ServiceListeners.h
service/ServiceReferenceBasePrivate.h
service/ServiceRegistrationBasePrivate.h
service/ServiceRegistrationCoreInfo.h
service/ServiceRegistry.h

bundle/BundleArchive.h
Expand Down
35 changes: 17 additions & 18 deletions framework/src/bundle/BundleContext.cpp
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
/*=============================================================================
/*=============================================================================
Library: CppMicroServices
Library: CppMicroServices
Copyright (c) The CppMicroServices developers. See the COPYRIGHT
file at the top-level directory of this distribution and at
https://github.com/CppMicroServices/CppMicroServices/COPYRIGHT .
Copyright (c) The CppMicroServices developers. See the COPYRIGHT
file at the top-level directory of this distribution and at
https://github.com/CppMicroServices/CppMicroServices/COPYRIGHT .
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
=============================================================================*/

Expand Down Expand Up @@ -274,8 +274,7 @@ namespace cppmicroservices
{
try
{
sref.d.load()->UngetService(b.lock(), true);
//sref.d.load()->UngetService(b.lock(), true);
sref.d.Load()->UngetService(b.lock(), true);
}
catch (...)
{
Expand Down Expand Up @@ -312,7 +311,7 @@ namespace cppmicroservices
auto b = GetAndCheckBundlePrivate(d);

std::shared_ptr<ServiceHolder<void>> h(
new ServiceHolder<void>(b, reference, reference.d.load()->GetService(b.get())));
new ServiceHolder<void>(b, reference, reference.d.Load()->GetService(b.get())));
return std::shared_ptr<void>(h, h->service.get());
}

Expand All @@ -333,7 +332,7 @@ namespace cppmicroservices
d->CheckValid();
auto b = GetAndCheckBundlePrivate(d);

auto serviceInterfaceMap = reference.d.load()->GetServiceInterfaceMap(b.get());
auto serviceInterfaceMap = reference.d.Load()->GetServiceInterfaceMap(b.get());
std::shared_ptr<ServiceHolder<InterfaceMap const>> h(
new ServiceHolder<InterfaceMap const>(b, reference, serviceInterfaceMap));
return InterfaceMapConstPtr(h, h->service.get());
Expand Down
4 changes: 2 additions & 2 deletions framework/src/bundle/BundleHooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ namespace cppmicroservices
{
ServiceReference<BundleFindHook> sr = srBaseIter->GetReference();
std::shared_ptr<BundleFindHook> fh
= std::static_pointer_cast<BundleFindHook>(sr.d.load()->GetService(GetPrivate(selfBundle).get()));
= std::static_pointer_cast<BundleFindHook>(sr.d.Load()->GetService(GetPrivate(selfBundle).get()));
if (fh)
{
try
Expand Down Expand Up @@ -139,7 +139,7 @@ namespace cppmicroservices
}

std::shared_ptr<BundleEventHook> eh = std::static_pointer_cast<BundleEventHook>(
sr.d.load()->GetService(GetPrivate(GetBundleContext().GetBundle()).get()));
sr.d.Load()->GetService(GetPrivate(GetBundleContext().GetBundle()).get()));
if (eh)
{
try
Expand Down
5 changes: 4 additions & 1 deletion framework/src/bundle/BundlePrivate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,9 @@ namespace cppmicroservices
try
{
if (util::Exists(bundleDir))
{
util::RemoveDirectoryRecursive(bundleDir);
}
}
catch (...)
{
Expand Down Expand Up @@ -823,7 +825,8 @@ namespace cppmicroservices
coreCtx->services.GetUsedByBundle(this, srs);
for (std::vector<ServiceRegistrationBase>::const_iterator i = srs.begin(); i != srs.end(); ++i)
{
i->GetReference(std::string()).d.load()->UngetService(this->shared_from_this(), false);
auto ref = i->GetReference(std::string());
ref.d.Load()->UngetService(this->shared_from_this(), false);
}
}

Expand Down
4 changes: 2 additions & 2 deletions framework/src/service/ServiceHooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ namespace cppmicroservices
{
ServiceReference<ServiceFindHook> sr = fhrIter->GetReference();
auto fh
= std::static_pointer_cast<ServiceFindHook>(sr.d.load()->GetService(GetPrivate(selfBundle).get()));
= std::static_pointer_cast<ServiceFindHook>(sr.d.Load()->GetService(GetPrivate(selfBundle).get()));
if (fh)
{
try
Expand Down Expand Up @@ -177,7 +177,7 @@ namespace cppmicroservices
{
ServiceReference<ServiceEventListenerHook> sr = sriIter->GetReference();
auto elh = std::static_pointer_cast<ServiceEventListenerHook>(
sr.d.load()->GetService(GetPrivate(selfBundle).get()));
sr.d.Load()->GetService(GetPrivate(selfBundle).get()));
if (elh)
{
try
Expand Down
4 changes: 3 additions & 1 deletion framework/src/service/ServiceListeners.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ namespace cppmicroservices
// Get a copy of the service reference and keep it until we are
// done with its properties.
auto ref = evt.GetServiceReference();
auto props = ref.d.load()->GetProperties();
auto props = ref.d.Load()->GetProperties();

{
auto l = this->Lock();
Expand All @@ -469,7 +469,9 @@ namespace cppmicroservices
for (auto& sse : complicatedListeners)
{
if (receivers.count(sse) == 0)
{
continue;
}
LDAPExpr const& ldapExpr = sse.GetLDAPExpr();
if (ldapExpr.IsNull() || ldapExpr.Evaluate(props, false))
{
Expand Down
8 changes: 4 additions & 4 deletions framework/src/service/ServiceObjects.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ namespace cppmicroservices

if (isPrototypeScope)
{
result = m_reference.d.load()->GetPrototypeService(MakeBundleContext(m_context).GetBundle());
result = m_reference.d.Load()->GetPrototypeService(MakeBundleContext(m_context).GetBundle());
}
else
{
result = m_reference.d.load()->GetServiceInterfaceMap(
result = m_reference.d.Load()->GetServiceInterfaceMap(
GetPrivate(MakeBundleContext(m_context).GetBundle()).get());
}

Expand Down Expand Up @@ -115,11 +115,11 @@ namespace cppmicroservices

if (isPrototypeScope)
{
sref.d.load()->UngetPrototypeService(bundle, interfaceMap);
sref.d.Load()->UngetPrototypeService(bundle, interfaceMap);
}
else
{
sref.d.load()->UngetService(bundle, true);
sref.d.Load()->UngetService(bundle, true);
}
}
}
Expand Down

1 comment on commit 062fd47

@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: 062fd47 Previous: d43df28 Ratio
ServiceRegistryFixture/RegisterServices/1/1/manual_time 40395.22533362488 ns/iter 26099.16344243466 ns/iter 1.55
ServiceRegistryFixture/RegisterServices/4/1/manual_time 164187.4102079382 ns/iter 102701.35233035785 ns/iter 1.60
ServiceRegistryFixture/RegisterServices/16/1/manual_time 649272.5000000022 ns/iter 393760.25572723657 ns/iter 1.65
ServiceRegistryFixture/RegisterServices/64/1/manual_time 2665988.1967213238 ns/iter 1599907.6000000406 ns/iter 1.67
ServiceRegistryFixture/RegisterServices/256/1/manual_time 10679338.3720931 ns/iter 6588148.529411979 ns/iter 1.62
ServiceRegistryFixture/RegisterServices/1000/1/manual_time 40347416.6666668 ns/iter 24580270.967742644 ns/iter 1.64
ServiceRegistryFixture/RegisterServices/1/4/manual_time 119976.92895339939 ns/iter 68523.02163496472 ns/iter 1.75
ServiceRegistryFixture/RegisterServices/4/4/manual_time 468409.32415519445 ns/iter 258941.12244898008 ns/iter 1.81
ServiceRegistryFixture/RegisterServices/16/4/manual_time 1885018.3406113489 ns/iter 1095120.145631071 ns/iter 1.72
ServiceRegistryFixture/RegisterServices/64/4/manual_time 7646454.961832078 ns/iter 4219707.821229059 ns/iter 1.81
ServiceRegistryFixture/RegisterServices/256/4/manual_time 30213650.000000015 ns/iter 16711568.749999942 ns/iter 1.81
ServiceRegistryFixture/RegisterServices/1000/4/manual_time 120170450.0000001 ns/iter 65632860.000000134 ns/iter 1.83
ServiceRegistryFixture/RegisterServices/1/16/manual_time 377759.6626506037 ns/iter 210968.74185985944 ns/iter 1.79
ServiceRegistryFixture/RegisterServices/4/16/manual_time 1547999.4974874388 ns/iter 857099.3442622944 ns/iter 1.81
ServiceRegistryFixture/RegisterServices/16/16/manual_time 5851873.000000005 ns/iter 3321343.9655172406 ns/iter 1.76
ServiceRegistryFixture/RegisterServices/64/16/manual_time 24323005.882352956 ns/iter 13720631.818181826 ns/iter 1.77
ServiceRegistryFixture/RegisterServices/256/16/manual_time 101627839.99999994 ns/iter 51293929.99999996 ns/iter 1.98
ServiceRegistryFixture/RegisterServices/1000/16/manual_time 379707899.9999999 ns/iter 210112074.99999958 ns/iter 1.81
ServiceRegistryFixture/RegisterServices/1/64/manual_time 1298931.5347721844 ns/iter 672556.8000000005 ns/iter 1.93
ServiceRegistryFixture/RegisterServices/4/64/manual_time 4953189.40397351 ns/iter 2789049.501661132 ns/iter 1.78
ServiceRegistryFixture/RegisterServices/16/64/manual_time 20471632.60869564 ns/iter 11690736.842105266 ns/iter 1.75
ServiceRegistryFixture/RegisterServices/64/64/manual_time 79893109.99999991 ns/iter 46633425 ns/iter 1.71
ServiceRegistryFixture/RegisterServices/256/64/manual_time 332586566.66666645 ns/iter 190060640 ns/iter 1.75
ServiceRegistryFixture/RegisterServices/1000/64/manual_time 1334817499.9999983 ns/iter 743341200 ns/iter 1.80
ServiceRegistryFixture/RegisterServices/1/256/manual_time 3997308.9108910905 ns/iter 2419453.107344634 ns/iter 1.65
ServiceRegistryFixture/RegisterServices/4/256/manual_time 16935311.940298513 ns/iter 10239378.448275853 ns/iter 1.65
ServiceRegistryFixture/RegisterServices/16/256/manual_time 60874709.99999996 ns/iter 39062334.999999985 ns/iter 1.56
ServiceRegistryFixture/RegisterServices/64/256/manual_time 267712125.00000003 ns/iter 159266657.14285702 ns/iter 1.68
ServiceRegistryFixture/RegisterServices/256/256/manual_time 1066902899.9999994 ns/iter 576487099.9999995 ns/iter 1.85
ServiceRegistryFixture/RegisterServices/1000/256/manual_time 5369601399.999989 ns/iter 2868366000.000003 ns/iter 1.87
ServiceRegistryFixture/RegisterServices/1/1000/manual_time 13875917.391304348 ns/iter 7453035 ns/iter 1.86
ServiceRegistryFixture/RegisterServices/4/1000/manual_time 47921647.058823526 ns/iter 30222259.375 ns/iter 1.59
ServiceRegistryFixture/RegisterServices/16/1000/manual_time 224709616.66666666 ns/iter 129646830.00000007 ns/iter 1.73
ServiceRegistryFixture/RegisterServices/64/1000/manual_time 757181199.9999999 ns/iter 491612250 ns/iter 1.54
ServiceRegistryFixture/RegisterServices/256/1000/manual_time 4280740799.9999976 ns/iter 2205215900 ns/iter 1.94
ServiceRegistryFixture/RegisterServices/1000/1000/manual_time 21393849599.999992 ns/iter 10918086699.999985 ns/iter 1.96
ServiceRegistryFixture/RegisterServicesWithRank/1/1/manual_time 39382.858200666444 ns/iter 25989.614100313593 ns/iter 1.52
ServiceRegistryFixture/RegisterServicesWithRank/4/1/manual_time 202862.00073964612 ns/iter 166091.4691387007 ns/iter 1.22
ServiceRegistryFixture/RegisterServicesWithRank/16/1/manual_time 787573.1999999963 ns/iter 538051.7999999996 ns/iter 1.46
ServiceRegistryFixture/RegisterServicesWithRank/64/1/manual_time 3479913.4057971 ns/iter 2644585.8611825197 ns/iter 1.32
ServiceRegistryFixture/RegisterServicesWithRank/256/1/manual_time 15879393.023255762 ns/iter 12976412.781954847 ns/iter 1.22
ServiceRegistryFixture/RegisterServicesWithRank/1000/1/manual_time 53683412.49999978 ns/iter 40640908.33333332 ns/iter 1.32
ServiceRegistryFixture/RegisterServicesWithRank/1/4/manual_time 117693.82079033456 ns/iter 69315.6254808433 ns/iter 1.70
ServiceRegistryFixture/RegisterServicesWithRank/4/4/manual_time 493817.6322418139 ns/iter 345920.58599695476 ns/iter 1.43
ServiceRegistryFixture/RegisterServicesWithRank/16/4/manual_time 2158473.2300885026 ns/iter 1556514.8965517348 ns/iter 1.39
ServiceRegistryFixture/RegisterServicesWithRank/64/4/manual_time 9336864.885496179 ns/iter 5335875.9999999795 ns/iter 1.75
ServiceRegistryFixture/RegisterServicesWithRank/256/4/manual_time 34653015.384615466 ns/iter 26329836.170212813 ns/iter 1.32
ServiceRegistryFixture/RegisterServicesWithRank/1000/4/manual_time 139611700.0000001 ns/iter 106045523.07692312 ns/iter 1.32
ServiceRegistryFixture/RegisterServicesWithRank/1/16/manual_time 376586.1969111974 ns/iter 223272.53433208502 ns/iter 1.69
ServiceRegistryFixture/RegisterServicesWithRank/4/16/manual_time 1561412.0243531172 ns/iter 1037183.8283828391 ns/iter 1.51
ServiceRegistryFixture/RegisterServicesWithRank/16/16/manual_time 5892053.999999994 ns/iter 3982588.5714285746 ns/iter 1.48
ServiceRegistryFixture/RegisterServicesWithRank/64/16/manual_time 25555347.222222224 ns/iter 17592635.937500007 ns/iter 1.45
ServiceRegistryFixture/RegisterServicesWithRank/256/16/manual_time 104648930.00000001 ns/iter 60576189.99999996 ns/iter 1.73
ServiceRegistryFixture/RegisterServicesWithRank/1000/16/manual_time 379752149.9999992 ns/iter 256915949.99999946 ns/iter 1.48
ServiceRegistryFixture/RegisterServicesWithRank/1/64/manual_time 1301320.6683168304 ns/iter 741728.3000000002 ns/iter 1.75
ServiceRegistryFixture/RegisterServicesWithRank/4/64/manual_time 4708232.12121212 ns/iter 2967026.2295082 ns/iter 1.59
ServiceRegistryFixture/RegisterServicesWithRank/16/64/manual_time 20108866.666666657 ns/iter 12566349.425287347 ns/iter 1.60
ServiceRegistryFixture/RegisterServicesWithRank/64/64/manual_time 78533929.99999996 ns/iter 47981431.2500001 ns/iter 1.64
ServiceRegistryFixture/RegisterServicesWithRank/256/64/manual_time 323816766.6666665 ns/iter 195574659.99999982 ns/iter 1.66
ServiceRegistryFixture/RegisterServicesWithRank/1000/64/manual_time 1319476699.9999986 ns/iter 723317799.9999999 ns/iter 1.82
ServiceRegistryFixture/RegisterServicesWithRank/1/256/manual_time 4034522.43902439 ns/iter 2609352.631578947 ns/iter 1.55
ServiceRegistryFixture/RegisterServicesWithRank/4/256/manual_time 16283158.441558449 ns/iter 10151723.255813956 ns/iter 1.60
ServiceRegistryFixture/RegisterServicesWithRank/16/256/manual_time 58730380 ns/iter 39299877.27272728 ns/iter 1.49
ServiceRegistryFixture/RegisterServicesWithRank/64/256/manual_time 263864925.0000001 ns/iter 163755700.00000003 ns/iter 1.61
ServiceRegistryFixture/RegisterServicesWithRank/256/256/manual_time 1081780300.0000005 ns/iter 597955900.0000002 ns/iter 1.81
ServiceRegistryFixture/RegisterServicesWithRank/1000/256/manual_time 5380364899.999999 ns/iter 3062566500.000004 ns/iter 1.76
ServiceRegistryFixture/RegisterServicesWithRank/1/1000/manual_time 13865294.782608695 ns/iter 7416192.999999999 ns/iter 1.87
ServiceRegistryFixture/RegisterServicesWithRank/4/1000/manual_time 44304852.631578945 ns/iter 27926622.85714286 ns/iter 1.59
ServiceRegistryFixture/RegisterServicesWithRank/16/1000/manual_time 197559533.33333334 ns/iter 129414418.1818182 ns/iter 1.53
ServiceRegistryFixture/RegisterServicesWithRank/64/1000/manual_time 743016500 ns/iter 480008249.9999999 ns/iter 1.55
ServiceRegistryFixture/RegisterServicesWithRank/256/1000/manual_time 4250812100 ns/iter 2313686199.999999 ns/iter 1.84
ServiceRegistryFixture/RegisterServicesWithRank/1000/1000/manual_time 21450593899.999977 ns/iter 11317331200.000004 ns/iter 1.90
ServiceRegistryFixture/FindServices/1/1 2539.269681894353 ns/iter 1647.0930803573124 ns/iter 1.54
ServiceRegistryFixture/FindServices/4/1 4803.041877715854 ns/iter 2610.690664025573 ns/iter 1.84
ServiceRegistryFixture/FindServices/16/1 13479.889285715022 ns/iter 5701.934821429079 ns/iter 2.36
ServiceRegistryFixture/FindServices/64/1 48984.85330750077 ns/iter 17190.35038180983 ns/iter 2.85
ServiceRegistryFixture/FindServices/256/1 178744.0707095571 ns/iter 62670.63392856796 ns/iter 2.85
ServiceRegistryFixture/FindServices/1000/1 676849.7767856627 ns/iter 273389.91562870616 ns/iter 2.48
ServiceRegistryFixture/FindServices/1/4 10099.435937497958 ns/iter 6799.024999998389 ns/iter 1.49
ServiceRegistryFixture/FindServices/4/4 18989.89365976952 ns/iter 10445.564062500524 ns/iter 1.82
ServiceRegistryFixture/FindServices/16/4 53651.41964286327 ns/iter 22837.754042925266 ns/iter 2.35
ServiceRegistryFixture/FindServices/64/4 196453.52263596543 ns/iter 68978.97321428965 ns/iter 2.85
ServiceRegistryFixture/FindServices/256/4 720831.250000182 ns/iter 247855.7857142505 ns/iter 2.91
ServiceRegistryFixture/FindServices/1000/4 2725241.2878788095 ns/iter 1085139.7590361459 ns/iter 2.51
ServiceRegistryFixture/FindServices/1/16 40992.089838073414 ns/iter 27125.769362124178 ns/iter 1.51
ServiceRegistryFixture/FindServices/4/16 76459.12946429182 ns/iter 44009.56249999411 ns/iter 1.74
ServiceRegistryFixture/FindServices/16/16 216392.31249999112 ns/iter 93260.7205035709 ns/iter 2.32
ServiceRegistryFixture/FindServices/64/16 784199.2187499005 ns/iter 279447.7039848265 ns/iter 2.81
ServiceRegistryFixture/FindServices/256/16 2862755.508474647 ns/iter 1001799.3306561816 ns/iter 2.86
ServiceRegistryFixture/FindServices/1000/16 10861712.499998787 ns/iter 4490136.875000416 ns/iter 2.42
ServiceRegistryFixture/FindServices/1/64 164822.19494227247 ns/iter 110780.89062500851 ns/iter 1.49
ServiceRegistryFixture/FindServices/4/64 304573.88392863196 ns/iter 165124.87110241305 ns/iter 1.84
ServiceRegistryFixture/FindServices/16/64 862405.6919642901 ns/iter 365214.0143736413 ns/iter 2.36
ServiceRegistryFixture/FindServices/64/64 3139778.5714284102 ns/iter 1128399.4642858326 ns/iter 2.78
ServiceRegistryFixture/FindServices/256/64 11641326.785715071 ns/iter 4045166.860465955 ns/iter 2.88
ServiceRegistryFixture/FindServices/1000/64 43952337.50000216 ns/iter 17416856.097558662 ns/iter 2.52
ServiceRegistryFixture/FindServices/1/256 682927.499999916 ns/iter 466868.184862667 ns/iter 1.46
ServiceRegistryFixture/FindServices/4/256 1286887.678571296 ns/iter 743542.187500168 ns/iter 1.73
ServiceRegistryFixture/FindServices/16/256 3795937.9888259047 ns/iter 1684539.3120394596 ns/iter 2.25
ServiceRegistryFixture/FindServices/64/256 13304754.000000684 ns/iter 5297264.000000723 ns/iter 2.51
ServiceRegistryFixture/FindServices/256/256 49111407.142861806 ns/iter 19440641.17647566 ns/iter 2.53
ServiceRegistryFixture/FindServices/1000/256 187992474.99998727 ns/iter 89432657.14287917 ns/iter 2.10
ServiceRegistryFixture/FindServices/1/1000 2737615.1515153255 ns/iter 2044366.7560324508 ns/iter 1.34
ServiceRegistryFixture/FindServices/4/1000 5100795.999999264 ns/iter 3136827.2300476176 ns/iter 1.63
ServiceRegistryFixture/FindServices/16/1000 14567675.999996936 ns/iter 6994061.607142856 ns/iter 2.08
ServiceRegistryFixture/FindServices/64/1000 53469459.99999662 ns/iter 22616340.624992404 ns/iter 2.36
ServiceRegistryFixture/FindServices/256/1000 196478950.0000279 ns/iter 82337499.99999419 ns/iter 2.39
ServiceRegistryFixture/FindServices/1000/1000 751081499.9998274 ns/iter 366200000.0001626 ns/iter 2.05
ServiceRegistryFixture/UnregisterServices/1/1/manual_time 2986.7003923309935 ns/iter 3018.539439439067 ns/iter 0.99
ServiceRegistryFixture/UnregisterServices/4/1/manual_time 11852.303568983521 ns/iter 12198.478808946435 ns/iter 0.97
ServiceRegistryFixture/UnregisterServices/16/1/manual_time 48740.53116973041 ns/iter 53748.87129258089 ns/iter 0.91
ServiceRegistryFixture/UnregisterServices/64/1/manual_time 211684.84299496413 ns/iter 225177.52039141062 ns/iter 0.94
ServiceRegistryFixture/UnregisterServices/256/1/manual_time 1095384.7352022857 ns/iter 1123385.1735013523 ns/iter 0.98
ServiceRegistryFixture/UnregisterServices/1000/1/manual_time 8305554.3209876735 ns/iter 7185194.897958474 ns/iter 1.16
ServiceRegistryFixture/UnregisterServices/1/4/manual_time 3547.578456986813 ns/iter 3582.5925684872727 ns/iter 0.99
ServiceRegistryFixture/UnregisterServices/4/4/manual_time 13593.276457833392 ns/iter 14436.110952784755 ns/iter 0.94
ServiceRegistryFixture/UnregisterServices/16/4/manual_time 91661.60409555411 ns/iter 58277.71859739177 ns/iter 1.57
ServiceRegistryFixture/UnregisterServices/64/4/manual_time 264170.05287010263 ns/iter 260104.96556716398 ns/iter 1.02
ServiceRegistryFixture/UnregisterServices/256/4/manual_time 1653147.0023980364 ns/iter 1492446.9696967928 ns/iter 1.11
ServiceRegistryFixture/UnregisterServices/1000/4/manual_time 15705102.222222323 ns/iter 12866672.727272527 ns/iter 1.22
ServiceRegistryFixture/UnregisterServices/1/16/manual_time 5907.773482560596 ns/iter 6120.744270237444 ns/iter 0.97
ServiceRegistryFixture/UnregisterServices/4/16/manual_time 20742.024467013147 ns/iter 21353.698273049336 ns/iter 0.97
ServiceRegistryFixture/UnregisterServices/16/16/manual_time 91335.84587440864 ns/iter 91476.42657875165 ns/iter 1.00
ServiceRegistryFixture/UnregisterServices/64/16/manual_time 490081.6526610753 ns/iter 462721.77631578135 ns/iter 1.06
ServiceRegistryFixture/UnregisterServices/256/16/manual_time 4072442.4418605287 ns/iter 3374075.242718439 ns/iter 1.21
ServiceRegistryFixture/UnregisterServices/1000/16/manual_time 45033819.99999998 ns/iter 37144188.888888866 ns/iter 1.21
ServiceRegistryFixture/UnregisterServices/1/64/manual_time 15314.631530566943 ns/iter 17047.205598693807 ns/iter 0.90
ServiceRegistryFixture/UnregisterServices/4/64/manual_time 49261.56873770162 ns/iter 54009.963914870255 ns/iter 0.91
ServiceRegistryFixture/UnregisterServices/16/64/manual_time 225215.1612903154 ns/iter 225954.24559112158 ns/iter 1.00
ServiceRegistryFixture/UnregisterServices/64/64/manual_time 1427059.2975206564 ns/iter 1280528.363636376 ns/iter 1.11
ServiceRegistryFixture/UnregisterServices/256/64/manual_time 13439215.094339726 ns/iter 11456133.333333407 ns/iter 1.17
ServiceRegistryFixture/UnregisterServices/1000/64/manual_time 159818075.00000027 ns/iter 134952460.00000018 ns/iter 1.18
ServiceRegistryFixture/UnregisterServices/1/256/manual_time 88421.73365251429 ns/iter 103149.50834326576 ns/iter 0.86
ServiceRegistryFixture/UnregisterServices/4/256/manual_time 292514.2916321453 ns/iter 340309.98023715423 ns/iter 0.86
ServiceRegistryFixture/UnregisterServices/16/256/manual_time 1338691.8699187008 ns/iter 1425896.8379446582 ns/iter 0.94
ServiceRegistryFixture/UnregisterServices/64/256/manual_time 7750499.999999987 ns/iter 7711227.586206914 ns/iter 1.01
ServiceRegistryFixture/UnregisterServices/256/256/manual_time 60519349.99999993 ns/iter 58599766.66666675 ns/iter 1.03
ServiceRegistryFixture/UnregisterServices/1000/256/manual_time 679309899.9999987 ns/iter 583915400.0000007 ns/iter 1.16
ServiceRegistryFixture/UnregisterServices/1/1000/manual_time 401515.38461538404 ns/iter 497021.647379169 ns/iter 0.81
ServiceRegistryFixture/UnregisterServices/4/1000/manual_time 1448183.4677419353 ns/iter 1623302.934537246 ns/iter 0.89
ServiceRegistryFixture/UnregisterServices/16/1000/manual_time 7053853.535353521 ns/iter 6907736.363636372 ns/iter 1.02
ServiceRegistryFixture/UnregisterServices/64/1000/manual_time 37113536.84210529 ns/iter 37968773.68421056 ns/iter 0.98
ServiceRegistryFixture/UnregisterServices/256/1000/manual_time 272871133.3333337 ns/iter 254131333.33333373 ns/iter 1.07
ServiceRegistryFixture/UnregisterServices/1000/1000/manual_time 3039722900.0000024 ns/iter 2457256899.999999 ns/iter 1.24
ServiceRegistryFixture/ModifyServices/1/1/manual_time 5837.941988137132 ns/iter 6131.678897167705 ns/iter 0.95
ServiceRegistryFixture/ModifyServices/4/1/manual_time 23359.27238043495 ns/iter 24637.923411538806 ns/iter 0.95
ServiceRegistryFixture/ModifyServices/16/1/manual_time 94057.1028411366 ns/iter 98443.6576094607 ns/iter 0.96
ServiceRegistryFixture/ModifyServices/64/1/manual_time 383597.732181426 ns/iter 383831.8335208103 ns/iter 1.00
ServiceRegistryFixture/ModifyServices/256/1/manual_time 1524641.4634146343 ns/iter 1803307.389162563 ns/iter 0.85
ServiceRegistryFixture/ModifyServices/1000/1/manual_time 6120948.648648649 ns/iter 6271298.245614035 ns/iter 0.98
ServiceRegistryFixture/ModifyServices/1/4/manual_time 6009.427643854211 ns/iter 6364.379569551798 ns/iter 0.94
ServiceRegistryFixture/ModifyServices/4/4/manual_time 23934.635265123277 ns/iter 24259.514156012086 ns/iter 0.99
ServiceRegistryFixture/ModifyServices/16/4/manual_time 96207.92896098361 ns/iter 99433.40473959096 ns/iter 0.97
ServiceRegistryFixture/ModifyServices/64/4/manual_time 390148.1274455 ns/iter 443555.41830432357 ns/iter 0.88
ServiceRegistryFixture/ModifyServices/256/4/manual_time 1594466.9662921352 ns/iter 1747480.178173718 ns/iter 0.91
ServiceRegistryFixture/ModifyServices/1000/4/manual_time 6329587.037037036 ns/iter 6523007.826086954 ns/iter 0.97
ServiceRegistryFixture/ModifyServices/1/16/manual_time 6738.595767543625 ns/iter 7045.864277092057 ns/iter 0.96
ServiceRegistryFixture/ModifyServices/4/16/manual_time 26997.716912470707 ns/iter 28181.677886697737 ns/iter 0.96
ServiceRegistryFixture/ModifyServices/16/16/manual_time 108612.55302435406 ns/iter 112963.70811855597 ns/iter 0.96
ServiceRegistryFixture/ModifyServices/64/16/manual_time 447358.2860743546 ns/iter 458920.1581027665 ns/iter 0.97
ServiceRegistryFixture/ModifyServices/256/16/manual_time 1871305.0802139041 ns/iter 1844986.8894601543 ns/iter 1.01
ServiceRegistryFixture/ModifyServices/1000/16/manual_time 7354303.370786517 ns/iter 7266115.999999999 ns/iter 1.01
ServiceRegistryFixture/ModifyServices/1/64/manual_time 9912.382905213197 ns/iter 10091.776652674196 ns/iter 0.98
ServiceRegistryFixture/ModifyServices/4/64/manual_time 39984.70264502867 ns/iter 38961.59702346715 ns/iter 1.03
ServiceRegistryFixture/ModifyServices/16/64/manual_time 158249.70694319214 ns/iter 158046.90757470464 ns/iter 1.00
ServiceRegistryFixture/ModifyServices/64/64/manual_time 639772.4729241879 ns/iter 645347.2677595626 ns/iter 0.99
ServiceRegistryFixture/ModifyServices/256/64/manual_time 2608890.9433962274 ns/iter 2775635.20599251 ns/iter 0.94
ServiceRegistryFixture/ModifyServices/1000/64/manual_time 11380885.483870966 ns/iter 10379214.705882354 ns/iter 1.10
ServiceRegistryFixture/ModifyServices/1/256/manual_time 43768.068978585245 ns/iter 47916.3431518941 ns/iter 0.91
ServiceRegistryFixture/ModifyServices/4/256/manual_time 175075.9151729383 ns/iter 196768.5204896218 ns/iter 0.89
ServiceRegistryFixture/ModifyServices/16/256/manual_time 706991.8781725898 ns/iter 808790.1176470584 ns/iter 0.87
ServiceRegistryFixture/ModifyServices/64/256/manual_time 2955227.753303964 ns/iter 3326313.145539907 ns/iter 0.89
ServiceRegistryFixture/ModifyServices/256/256/manual_time 12578614.035087721 ns/iter 13948716.666666662 ns/iter 0.90
ServiceRegistryFixture/ModifyServices/1000/256/manual_time 49176550 ns/iter 52228507.6923077 ns/iter 0.94
ServiceRegistryFixture/ModifyServices/1/1000/manual_time 189565.85432639724 ns/iter 229716.22306717365 ns/iter 0.83
ServiceRegistryFixture/ModifyServices/4/1000/manual_time 766236.7280606726 ns/iter 915491.9154228861 ns/iter 0.84
ServiceRegistryFixture/ModifyServices/16/1000/manual_time 3171436.1607142882 ns/iter 3666741.3043478266 ns/iter 0.86
ServiceRegistryFixture/ModifyServices/64/1000/manual_time 13238699.999999996 ns/iter 16291480.434782606 ns/iter 0.81
ServiceRegistryFixture/ModifyServices/256/1000/manual_time 53176014.285714276 ns/iter 61661490.9090909 ns/iter 0.86
ServiceRegistryFixture/ModifyServices/1000/1000/manual_time 215353233.33333334 ns/iter 248669300 ns/iter 0.87
ServiceTrackerFixture/OpenServiceTrackerWithSvcRef/manual_time 6462.424896736553 ns/iter 5855.943730926056 ns/iter 1.10
ServiceTrackerFixture/OpenServiceTrackerWithBundleContext/manual_time 8142.803557664262 ns/iter 7219.335012486472 ns/iter 1.13
ServiceTrackerFixture/OpenServiceTrackerWithInterfaceName/manual_time 8137.392241379825 ns/iter 7408.819410552206 ns/iter 1.10
CloseServiceTracker/1000 8559.672991072122 ns/iter 7885.802455359478 ns/iter 1.09
CloseServiceTracker/1024 7164.191964282703 ns/iter 8008.778978668783 ns/iter 0.89
CloseServiceTracker/2048 7110.562499999925 ns/iter 7728.100446427227 ns/iter 0.92
CloseServiceTracker/4096 7248.220535716752 ns/iter 7996.770089288167 ns/iter 0.91
CloseServiceTracker/8192 7361.659598217329 ns/iter 7714.785714283729 ns/iter 0.95
CloseServiceTracker/16384 7313.752232143144 ns/iter 7923.47489520434 ns/iter 0.92
CloseServiceTracker/32768 7412.325892859023 ns/iter 8040.727678572271 ns/iter 0.92
CloseServiceTracker/65536 7685.409821427973 ns/iter 8014.14843749626 ns/iter 0.96
CloseServiceTracker/131072 7802.919642857985 ns/iter 8582.66741071288 ns/iter 0.91
CloseServiceTracker/262144 7919.599019645077 ns/iter 8689.339285713311 ns/iter 0.91
CloseServiceTracker/524288 8073.899553571502 ns/iter 8712.270089285466 ns/iter 0.93
CloseServiceTracker/1000000 8480.48325893152 ns/iter 8787.471038071571 ns/iter 0.97
ServiceTrackerFixture/ServiceTrackerScalability/1 47312.642413245536 ns/iter 29785.198693751016 ns/iter 1.59
ServiceTrackerFixture/ServiceTrackerScalability/4000 27423748.00000107 ns/iter 17951763.414624486 ns/iter 1.53
ServiceTrackerFixture/ServiceTrackerScalability/10000 76689581.81821753 ns/iter 61105709.999992535 ns/iter 1.26
ServiceTrackerFixture/MultipleImplOneInterfaceServiceTrackerScalability/1 48051.721905747836 ns/iter 28811.434770369135 ns/iter 1.67
ServiceTrackerFixture/MultipleImplOneInterfaceServiceTrackerScalability/4000 188396249.9999825 ns/iter 120986771.42856623 ns/iter 1.56
ServiceTrackerFixture/MultipleImplOneInterfaceServiceTrackerScalability/10000 484474150.00009644 ns/iter 303151500.00008845 ns/iter 1.60
ServiceTrackerFixture/ServiceTrackerScalabilityWithLDAPFilter/1 42725.515615794095 ns/iter 26725.90484480923 ns/iter 1.60
ServiceTrackerFixture/ServiceTrackerScalabilityWithLDAPFilter/4000 3367887.793426999 ns/iter 3821538.547486223 ns/iter 0.88
ServiceTrackerFixture/ServiceTrackerScalabilityWithLDAPFilter/10000 11357951.562494861 ns/iter 10293385.937501399 ns/iter 1.10
AnyMapPerfTestFixture/HappyPath/1 436.0171249999212 ns/iter 490.00374352752624 ns/iter 0.89
AnyMapPerfTestFixture/HappyPath/3 1283.477499999565 ns/iter 1429.1242280694785 ns/iter 0.90
AnyMapPerfTestFixture/HappyPath/7 2906.904684417911 ns/iter 3338.199553571794 ns/iter 0.87
AnyMapPerfTestFixture/HappyPath/11 4564.179384327166 ns/iter 5124.050892858024 ns/iter 0.89
AnyMapPerfTestFixture/HappyPath/15 6219.052678570084 ns/iter 6912.142857142304 ns/iter 0.90
AnyMapPerfTestFixture/HappyPath/18 7407.103794641045 ns/iter 8136.434151789932 ns/iter 0.91
AnyMapPerfTestFixture/HappyPath/20 8283.19337860277 ns/iter 9706.510238794519 ns/iter 0.85
AnyMapPerfTestFixture/ErrorPath/1 5704.616964286353 ns/iter 5832.001785713763 ns/iter 0.98
AnyMapPerfTestFixture/ErrorPath/3 8155.147321429825 ns/iter 8410.296382604227 ns/iter 0.97
AnyMapPerfTestFixture/ErrorPath/7 12602.491071423368 ns/iter 13302.864719354126 ns/iter 0.95
AnyMapPerfTestFixture/ErrorPath/11 17199.776561005154 ns/iter 19009.026866310644 ns/iter 0.90
AnyMapPerfTestFixture/ErrorPath/15 22162.22187500705 ns/iter 24231.39920314167 ns/iter 0.91
AnyMapPerfTestFixture/ErrorPath/18 25349.232142860143 ns/iter 27955.84563428053 ns/iter 0.91
AnyMapPerfTestFixture/ErrorPath/20 28023.339627960977 ns/iter 30405.866071439345 ns/iter 0.92
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/1 663.5162499999784 ns/iter 779.7209004619625 ns/iter 0.85
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/3 1781.5336442266025 ns/iter 2089.6590625000044 ns/iter 0.85
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/7 3953.280753069828 ns/iter 4572.6262781832 ns/iter 0.86
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/11 6206.749107142124 ns/iter 7135.324776785166 ns/iter 0.87
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/15 8453.95424107157 ns/iter 9568.915625003172 ns/iter 0.88
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/18 10169.94790201623 ns/iter 12097.704687505484 ns/iter 0.84
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/20 11249.412499999778 ns/iter 13327.55714285635 ns/iter 0.84
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/1 423.99631249992353 ns/iter 511.541875000278 ns/iter 0.83
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/3 1546.9636160716504 ns/iter 1789.7876694522126 ns/iter 0.86
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/7 3718.0513963388116 ns/iter 4345.665218825838 ns/iter 0.86
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/11 5970.739285714899 ns/iter 6710.409821429103 ns/iter 0.89
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/15 8187.637276785762 ns/iter 9254.38413221375 ns/iter 0.88
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/18 9848.337499995807 ns/iter 11261.675000000081 ns/iter 0.87
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/20 10940.529687502476 ns/iter 12968.251034591744 ns/iter 0.84
BundleInstallFixture/BundleInstallCppFramework/manual_time 257813.03211351702 ns/iter 383297.30538922147 ns/iter 0.67
BundleInstallFixture/LargeBundleInstallCppFramework/manual_time 257252.82465150332 ns/iter 379281.2366737743 ns/iter 0.68
ConstructFilterFromString 616.31803571426 ns/iter 744.0503348209606 ns/iter 0.83
ConstructNonTrivialFilterFromString 970.4557721181144 ns/iter 1140.32553571438 ns/iter 0.85
MatchFilterWithAnyMap/Simple 404.14090606503294 ns/iter 486.1353164111526 ns/iter 0.83
MatchFilterWithAnyMap/Complex 449.67633937247615 ns/iter 524.0131000000474 ns/iter 0.86
MatchFilterWithBundle/Simple 214.46303124989186 ns/iter 221.95690624997155 ns/iter 0.97
MatchFilterWithBundle/Complex 348.6778886289061 ns/iter 360.52907189848963 ns/iter 0.97
MatchFilterWithServiceReference/Simple 198.2605246311866 ns/iter 190.07252722889623 ns/iter 1.04
MatchFilterWithServiceReference/Complex 244.28496428575792 ns/iter 245.16212500003576 ns/iter 1.00
ConstructFilterIncremental 2243.7634556220087 ns/iter 2484.4180977488995 ns/iter 0.90
ConstructFilterNotOperator 974.9068862019348 ns/iter 1060.2035937502308 ns/iter 0.92
ServiceFixture/GetServiceReferenceByInterface 1558.3245535718709 ns/iter 1204.7343749998163 ns/iter 1.29
ServiceFixture/GetServiceReferenceByClassName 1398.8774112156 ns/iter 1034.6303125004397 ns/iter 1.35
ServiceFixture/GetAllServiceReferencesByInterface 1410.061111580332 ns/iter 1045.790292057361 ns/iter 1.35
ServiceFixture/GetAllServiceReferencesByClassName 1073.6199999996643 ns/iter 775.1329575296495 ns/iter 1.39
ServiceFixture/GetAllServiceReferencesByClassNameAndLDAPFilter 740.844642857143 ns/iter 837.4020815168844 ns/iter 0.88
ServiceFixture/GetAllServiceReferencesByInterfaceAndLDAPFilter 683.5423214283765 ns/iter 779.0260044642545 ns/iter 0.88

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

Please sign in to comment.