Skip to content

Commit

Permalink
Fix #868: Recoups some of performance losses from PR #841 (#869) (#907)
Browse files Browse the repository at this point in the history
* fixed lockReg shared_ptr

* down to 5% increase from original

* get logs from github to verify behavior

* reverting performance yml and adding move constructor (default) for RegistrationLocks
:

Co-authored-by: tcormackMW <113473781+tcormackMW@users.noreply.github.com>
  • Loading branch information
insi-eb and tcormackMW committed Aug 29, 2023
1 parent f331e12 commit f6d070e
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ namespace cppmicroservices

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

std::shared_ptr<ServiceRegistrationLocks> LockServiceRegistration() const;
ServiceRegistrationLocks LockServiceRegistration() const;

std::shared_ptr<ServiceRegistrationBasePrivate> d;
};
Expand Down
4 changes: 2 additions & 2 deletions framework/src/service/ServiceReferenceBasePrivate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ namespace cppmicroservices

ServiceReferenceBasePrivate::~ServiceReferenceBasePrivate() = default;

std::shared_ptr<ServiceRegistrationLocks>
ServiceRegistrationLocks
ServiceReferenceBasePrivate::LockServiceRegistration() const
{
return std::make_shared<ServiceRegistrationLocks>(registration.lock(), coreInfo);
return ServiceRegistrationLocks(registration.lock(), coreInfo);
}

InterfaceMapConstPtr
Expand Down
2 changes: 1 addition & 1 deletion framework/src/service/ServiceReferenceBasePrivate.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ namespace cppmicroservices

~ServiceReferenceBasePrivate();

std::shared_ptr<ServiceRegistrationLocks> LockServiceRegistration() const;
ServiceRegistrationLocks LockServiceRegistration() const;

/**
* Get the service object.
Expand Down
13 changes: 5 additions & 8 deletions framework/src/service/ServiceRegistrationBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -330,10 +330,10 @@ namespace cppmicroservices
}
}

std::shared_ptr<ServiceRegistrationLocks>
ServiceRegistrationLocks
ServiceRegistrationBase::LockServiceRegistration() const
{
return std::make_shared<ServiceRegistrationLocks>(d, d->coreInfo);
return ServiceRegistrationLocks(d, d->coreInfo);
}

bool
Expand All @@ -353,12 +353,9 @@ namespace cppmicroservices
return true;
}

ServiceReferenceBase sr1;
ServiceReferenceBase sr2;
{
LockServiceRegistration(), sr1 = d->reference;
o.LockServiceRegistration(), sr2 = o.d->reference;
}
ServiceReferenceBase sr1 = (LockServiceRegistration(), d->reference);
ServiceReferenceBase sr2 = (o.LockServiceRegistration(), o.d->reference);

return sr1 < sr2;
}

Expand Down
13 changes: 5 additions & 8 deletions framework/src/util/ServiceRegistrationLocks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,11 @@
namespace cppmicroservices
{

ServiceRegistrationLocks::ServiceRegistrationLocks(std::shared_ptr<ServiceRegistrationBasePrivate> reg,
std::shared_ptr<ServiceRegistrationCoreInfo> coreInfo)
{
if (reg != nullptr)
{
regL = reg->Lock();
}
coreInfoL = coreInfo->Lock();
ServiceRegistrationLocks::ServiceRegistrationLocks(const std::shared_ptr<ServiceRegistrationBasePrivate>& reg,
const std::shared_ptr<ServiceRegistrationCoreInfo>& coreInfo)
: regL(reg != nullptr ? reg->Lock() : cppmicroservices::detail::MutexLockingStrategy<>::UniqueLock())
, coreInfoL(coreInfo->Lock())
{
}
} // namespace cppmicroservices

Expand Down
12 changes: 9 additions & 3 deletions framework/src/util/ServiceRegistrationLocks.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,18 @@ namespace cppmicroservices
class ServiceRegistrationLocks final
{
public:
ServiceRegistrationLocks(std::shared_ptr<ServiceRegistrationBasePrivate> reg,
std::shared_ptr<ServiceRegistrationCoreInfo> coreInfo);
ServiceRegistrationLocks(const std::shared_ptr<ServiceRegistrationBasePrivate>& reg,
const std::shared_ptr<ServiceRegistrationCoreInfo>& coreInfo);

// Delete all copy and move to enforce that it is only ever constructed into one object -- avoids deadlocks
ServiceRegistrationLocks(ServiceRegistrationLocks const& lockObj) = delete;
ServiceRegistrationLocks(ServiceRegistrationLocks&& lockObj) = default;
ServiceRegistrationLocks& operator=(ServiceRegistrationLocks const& lockObj) = delete;
ServiceRegistrationLocks& operator=(ServiceRegistrationLocks&& lockObj) = delete;

private:
cppmicroservices::detail::MutexLockingStrategy<>::UniqueLock coreInfoL;
cppmicroservices::detail::MutexLockingStrategy<>::UniqueLock regL;
cppmicroservices::detail::MutexLockingStrategy<>::UniqueLock coreInfoL;
};
} // namespace cppmicroservices

Expand Down

1 comment on commit f6d070e

@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: f6d070e Previous: 7a2faa3 Ratio
ServiceRegistryFixture/RegisterServices/1/1/manual_time 35024.01836753844 ns/iter 39726.55049247774 ns/iter 0.88
ServiceRegistryFixture/RegisterServices/4/1/manual_time 142163.0910260545 ns/iter 161596.05312382875 ns/iter 0.88
ServiceRegistryFixture/RegisterServices/16/1/manual_time 547267.5000000042 ns/iter 617207.2000000036 ns/iter 0.89
ServiceRegistryFixture/RegisterServices/64/1/manual_time 2223589.3150685052 ns/iter 2592728.8401253535 ns/iter 0.86
ServiceRegistryFixture/RegisterServices/256/1/manual_time 9083955.769230839 ns/iter 10451135.555555563 ns/iter 0.87
ServiceRegistryFixture/RegisterServices/1000/1/manual_time 34613118.18181875 ns/iter 39783931.57894715 ns/iter 0.87
ServiceRegistryFixture/RegisterServices/1/4/manual_time 97318.80213043929 ns/iter 116846.51650078614 ns/iter 0.83
ServiceRegistryFixture/RegisterServices/4/4/manual_time 397756.20253164455 ns/iter 458970.91463414684 ns/iter 0.87
ServiceRegistryFixture/RegisterServices/16/4/manual_time 1602054.9618320602 ns/iter 1852394.5770065093 ns/iter 0.86
ServiceRegistryFixture/RegisterServices/64/4/manual_time 6303109.000000021 ns/iter 7602569.924812052 ns/iter 0.83
ServiceRegistryFixture/RegisterServices/256/4/manual_time 25581377.419354707 ns/iter 30096566.666666698 ns/iter 0.85
ServiceRegistryFixture/RegisterServices/1000/4/manual_time 99549255.55555545 ns/iter 117403887.5000008 ns/iter 0.85
ServiceRegistryFixture/RegisterServices/1/16/manual_time 315494.91525423696 ns/iter 372038.5673624283 ns/iter 0.85
ServiceRegistryFixture/RegisterServices/4/16/manual_time 1335238.971583219 ns/iter 1514134.1708542719 ns/iter 0.88
ServiceRegistryFixture/RegisterServices/16/16/manual_time 4975790.20979021 ns/iter 5775261.999999992 ns/iter 0.86
ServiceRegistryFixture/RegisterServices/64/16/manual_time 20705588.372093033 ns/iter 24458337.1428571 ns/iter 0.85
ServiceRegistryFixture/RegisterServices/256/16/manual_time 81922623.07692312 ns/iter 98691559.99999997 ns/iter 0.83
ServiceRegistryFixture/RegisterServices/1000/16/manual_time 314121366.66666716 ns/iter 374939749.99999964 ns/iter 0.84
ServiceRegistryFixture/RegisterServices/1/64/manual_time 1070187.1159563926 ns/iter 1287981.2941176451 ns/iter 0.83
ServiceRegistryFixture/RegisterServices/4/64/manual_time 4016632.124352327 ns/iter 4887843.87096774 ns/iter 0.82
ServiceRegistryFixture/RegisterServices/16/64/manual_time 17002881.034482747 ns/iter 20378063.04347826 ns/iter 0.83
ServiceRegistryFixture/RegisterServices/64/64/manual_time 63049859.99999996 ns/iter 79553739.99999997 ns/iter 0.79
ServiceRegistryFixture/RegisterServices/256/64/manual_time 253150933.33333337 ns/iter 324833399.99999994 ns/iter 0.78
ServiceRegistryFixture/RegisterServices/1000/64/manual_time 1019293400 ns/iter 1317712199.999998 ns/iter 0.77
ServiceRegistryFixture/RegisterServices/1/256/manual_time 3182070.9558823514 ns/iter 3974283.6538461517 ns/iter 0.80
ServiceRegistryFixture/RegisterServices/4/256/manual_time 14140110.71428571 ns/iter 16605952.238805966 ns/iter 0.85
ServiceRegistryFixture/RegisterServices/16/256/manual_time 53280028.57142864 ns/iter 59412600.00000004 ns/iter 0.90
ServiceRegistryFixture/RegisterServices/64/256/manual_time 235168620 ns/iter 262512200.0000001 ns/iter 0.90
ServiceRegistryFixture/RegisterServices/256/256/manual_time 863041700.0000004 ns/iter 1079199799.999999 ns/iter 0.80
ServiceRegistryFixture/RegisterServices/1000/256/manual_time 4270974800.0000005 ns/iter 5440967900.000009 ns/iter 0.78
ServiceRegistryFixture/RegisterServices/1/1000/manual_time 10780330.999999998 ns/iter 13652102.60869565 ns/iter 0.79
ServiceRegistryFixture/RegisterServices/4/1000/manual_time 42361061.904761896 ns/iter 47924423.52941177 ns/iter 0.88
ServiceRegistryFixture/RegisterServices/16/1000/manual_time 176378942.85714287 ns/iter 214844016.66666654 ns/iter 0.82
ServiceRegistryFixture/RegisterServices/64/1000/manual_time 604333500.0000001 ns/iter 819363000.0000002 ns/iter 0.74
ServiceRegistryFixture/RegisterServices/256/1000/manual_time 3376387299.9999986 ns/iter 4192341100 ns/iter 0.81
ServiceRegistryFixture/RegisterServices/1000/1000/manual_time 17219533299.999992 ns/iter 21233620199.999985 ns/iter 0.81
ServiceRegistryFixture/RegisterServicesWithRank/1/1/manual_time 36102.21952811729 ns/iter 39819.40282591296 ns/iter 0.91
ServiceRegistryFixture/RegisterServicesWithRank/4/1/manual_time 211796.0283454186 ns/iter 203428.96393817887 ns/iter 1.04
ServiceRegistryFixture/RegisterServicesWithRank/16/1/manual_time 782028.7 ns/iter 812356.3000000013 ns/iter 0.96
ServiceRegistryFixture/RegisterServicesWithRank/64/1/manual_time 3482755.3784860424 ns/iter 3452178.5992218023 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/256/1/manual_time 17278421.052631542 ns/iter 16136780.000000004 ns/iter 1.07
ServiceRegistryFixture/RegisterServicesWithRank/1000/1/manual_time 54548831.25000013 ns/iter 53868273.333333306 ns/iter 1.01
ServiceRegistryFixture/RegisterServicesWithRank/1/4/manual_time 104203.10236600642 ns/iter 118331.5656246042 ns/iter 0.88
ServiceRegistryFixture/RegisterServicesWithRank/4/4/manual_time 455980.10089686216 ns/iter 503117.71099744365 ns/iter 0.91
ServiceRegistryFixture/RegisterServicesWithRank/16/4/manual_time 2141347.200000007 ns/iter 2150945.8904109583 ns/iter 1.00
ServiceRegistryFixture/RegisterServicesWithRank/64/4/manual_time 8837135.000000019 ns/iter 9574097.014925344 ns/iter 0.92
ServiceRegistryFixture/RegisterServicesWithRank/256/4/manual_time 34427774.99999998 ns/iter 35126595.99999998 ns/iter 0.98
ServiceRegistryFixture/RegisterServicesWithRank/1000/4/manual_time 144556811.1111117 ns/iter 140688799.99999955 ns/iter 1.03
ServiceRegistryFixture/RegisterServicesWithRank/1/16/manual_time 328437.57178014657 ns/iter 381721.61369193235 ns/iter 0.86
ServiceRegistryFixture/RegisterServicesWithRank/4/16/manual_time 1391341.791044776 ns/iter 1563625.7009345766 ns/iter 0.89
ServiceRegistryFixture/RegisterServicesWithRank/16/16/manual_time 5666489.655172419 ns/iter 5865411.999999993 ns/iter 0.97
ServiceRegistryFixture/RegisterServicesWithRank/64/16/manual_time 23303492.68292684 ns/iter 25539349.99999999 ns/iter 0.91
ServiceRegistryFixture/RegisterServicesWithRank/256/16/manual_time 94305666.66666691 ns/iter 104358270.00000021 ns/iter 0.90
ServiceRegistryFixture/RegisterServicesWithRank/1000/16/manual_time 310783250.00000036 ns/iter 378786650.00000036 ns/iter 0.82
ServiceRegistryFixture/RegisterServicesWithRank/1/64/manual_time 1107637.4136229039 ns/iter 1294643.5695538055 ns/iter 0.86
ServiceRegistryFixture/RegisterServicesWithRank/4/64/manual_time 4030505.7416267884 ns/iter 4716303.658536588 ns/iter 0.85
ServiceRegistryFixture/RegisterServicesWithRank/16/64/manual_time 16982229.31034481 ns/iter 20173529.78723405 ns/iter 0.84
ServiceRegistryFixture/RegisterServicesWithRank/64/64/manual_time 62714649.999999985 ns/iter 83959792.30769221 ns/iter 0.75
ServiceRegistryFixture/RegisterServicesWithRank/256/64/manual_time 269402399.9999999 ns/iter 326569766.6666663 ns/iter 0.82
ServiceRegistryFixture/RegisterServicesWithRank/1000/64/manual_time 1060111799.9999992 ns/iter 1331178100.0000007 ns/iter 0.80
ServiceRegistryFixture/RegisterServicesWithRank/1/256/manual_time 3545085.8267716523 ns/iter 3974863.2653061207 ns/iter 0.89
ServiceRegistryFixture/RegisterServicesWithRank/4/256/manual_time 13841509.278350515 ns/iter 16230231.168831171 ns/iter 0.85
ServiceRegistryFixture/RegisterServicesWithRank/16/256/manual_time 51558878.5714286 ns/iter 58848860 ns/iter 0.88
ServiceRegistryFixture/RegisterServicesWithRank/64/256/manual_time 215960150.00000003 ns/iter 262371999.9999997 ns/iter 0.82
ServiceRegistryFixture/RegisterServicesWithRank/256/256/manual_time 887511199.9999996 ns/iter 1077365400.0000002 ns/iter 0.82
ServiceRegistryFixture/RegisterServicesWithRank/1000/256/manual_time 4394372900.000001 ns/iter 5438197500.000001 ns/iter 0.81
ServiceRegistryFixture/RegisterServicesWithRank/1/1000/manual_time 10815638 ns/iter 13745225.438596502 ns/iter 0.79
ServiceRegistryFixture/RegisterServicesWithRank/4/1000/manual_time 38121560.86956522 ns/iter 43970394.7368421 ns/iter 0.87
ServiceRegistryFixture/RegisterServicesWithRank/16/1000/manual_time 168692171.42857137 ns/iter 198909083.33333334 ns/iter 0.85
ServiceRegistryFixture/RegisterServicesWithRank/64/1000/manual_time 601005399.9999999 ns/iter 751592100 ns/iter 0.80
ServiceRegistryFixture/RegisterServicesWithRank/256/1000/manual_time 3474234000.0000005 ns/iter 4235637400.0000024 ns/iter 0.82
ServiceRegistryFixture/RegisterServicesWithRank/1000/1000/manual_time 17792721900.000004 ns/iter 21377686599.999947 ns/iter 0.83
ServiceRegistryFixture/FindServices/1/1 2598.5174999992264 ns/iter 2542.5746428571265 ns/iter 1.02
ServiceRegistryFixture/FindServices/4/1 4936.9218633237115 ns/iter 4702.205808494472 ns/iter 1.05
ServiceRegistryFixture/FindServices/16/1 13901.633251634219 ns/iter 13590.949817187664 ns/iter 1.02
ServiceRegistryFixture/FindServices/64/1 52794.30000000502 ns/iter 50284.030000011626 ns/iter 1.05
ServiceRegistryFixture/FindServices/256/1 183026.86847051248 ns/iter 180435.03560030513 ns/iter 1.01
ServiceRegistryFixture/FindServices/1000/1 693084.4866072254 ns/iter 678408.5714284872 ns/iter 1.02
ServiceRegistryFixture/FindServices/1/4 10870.843750005577 ns/iter 10098.009830313458 ns/iter 1.08
ServiceRegistryFixture/FindServices/4/4 19821.368463808853 ns/iter 19062.13269761323 ns/iter 1.04
ServiceRegistryFixture/FindServices/16/4 56489.13392856717 ns/iter 54945.730000008545 ns/iter 1.03
ServiceRegistryFixture/FindServices/64/4 206251.437499958 ns/iter 196096.06214844732 ns/iter 1.05
ServiceRegistryFixture/FindServices/256/4 747714.6205359426 ns/iter 722207.4107143531 ns/iter 1.04
ServiceRegistryFixture/FindServices/1000/4 2782846.874999174 ns/iter 2716760.984848558 ns/iter 1.02
ServiceRegistryFixture/FindServices/1/16 42147.19460013033 ns/iter 40739.782366066334 ns/iter 1.03
ServiceRegistryFixture/FindServices/4/16 77289.1183035743 ns/iter 77227.68973213842 ns/iter 1.00
ServiceRegistryFixture/FindServices/16/16 226501.00435213532 ns/iter 215014.90624999066 ns/iter 1.05
ServiceRegistryFixture/FindServices/64/16 815319.8660712593 ns/iter 790266.1607143305 ns/iter 1.03
ServiceRegistryFixture/FindServices/256/16 2903524.5762716546 ns/iter 2863946.186441114 ns/iter 1.01
ServiceRegistryFixture/FindServices/1000/16 11072553.124996888 ns/iter 10851028.571429262 ns/iter 1.02
ServiceRegistryFixture/FindServices/1/64 172085.93624428476 ns/iter 164385.04787628478 ns/iter 1.05
ServiceRegistryFixture/FindServices/4/64 313901.4732143762 ns/iter 302860.71428581147 ns/iter 1.04
ServiceRegistryFixture/FindServices/16/64 913681.258366785 ns/iter 861831.5930388451 ns/iter 1.06
ServiceRegistryFixture/FindServices/64/64 3299338.967135896 ns/iter 3153680.8035720503 ns/iter 1.05
ServiceRegistryFixture/FindServices/256/64 11745126.562495045 ns/iter 11559865.624999333 ns/iter 1.02
ServiceRegistryFixture/FindServices/1000/64 45581933.333354145 ns/iter 44790875.0000039 ns/iter 1.02
ServiceRegistryFixture/FindServices/1/256 709733.8392859293 ns/iter 668084.1964284566 ns/iter 1.06
ServiceRegistryFixture/FindServices/4/256 1341457.6305219368 ns/iter 1269383.214285621 ns/iter 1.06
ServiceRegistryFixture/FindServices/16/256 3873137.433153963 ns/iter 3647533.155079651 ns/iter 1.06
ServiceRegistryFixture/FindServices/64/256 14244742.00000077 ns/iter 13495637.500000158 ns/iter 1.06
ServiceRegistryFixture/FindServices/256/256 54897781.818164565 ns/iter 48828928.57142451 ns/iter 1.12
ServiceRegistryFixture/FindServices/1000/256 202590533.33332607 ns/iter 185693450.00003067 ns/iter 1.09
ServiceRegistryFixture/FindServices/1/1000 2755691.9678708906 ns/iter 2664212.1212121034 ns/iter 1.03
ServiceRegistryFixture/FindServices/4/1000 5261132.999999063 ns/iter 5038037.500000314 ns/iter 1.04
ServiceRegistryFixture/FindServices/16/1000 15312711.111113863 ns/iter 14732742.000001054 ns/iter 1.04
ServiceRegistryFixture/FindServices/64/1000 56139445.4545569 ns/iter 53618536.36364603 ns/iter 1.05
ServiceRegistryFixture/FindServices/256/1000 208582000.00005427 ns/iter 195714100.00003198 ns/iter 1.07
ServiceRegistryFixture/FindServices/1000/1000 806633400.0000097 ns/iter 753452599.999946 ns/iter 1.07
ServiceRegistryFixture/UnregisterServices/1/1/manual_time 3492.3631905845205 ns/iter 2991.9254871297003 ns/iter 1.17
ServiceRegistryFixture/UnregisterServices/4/1/manual_time 14420.990170942303 ns/iter 12366.292017143069 ns/iter 1.17
ServiceRegistryFixture/UnregisterServices/16/1/manual_time 58815.382173188824 ns/iter 49791.02619139642 ns/iter 1.18
ServiceRegistryFixture/UnregisterServices/64/1/manual_time 261095.7875457091 ns/iter 223064.9072295463 ns/iter 1.17
ServiceRegistryFixture/UnregisterServices/256/1/manual_time 1351027.946767909 ns/iter 1128305.047318456 ns/iter 1.20
ServiceRegistryFixture/UnregisterServices/1000/1/manual_time 9839130.882352825 ns/iter 8155884.090909163 ns/iter 1.21
ServiceRegistryFixture/UnregisterServices/1/4/manual_time 4256.286381300824 ns/iter 3589.513838500653 ns/iter 1.19
ServiceRegistryFixture/UnregisterServices/4/4/manual_time 16281.360224287628 ns/iter 13890.148507866921 ns/iter 1.17
ServiceRegistryFixture/UnregisterServices/16/4/manual_time 69140.05850802087 ns/iter 57908.96660314202 ns/iter 1.19
ServiceRegistryFixture/UnregisterServices/64/4/manual_time 319077.0917225751 ns/iter 272761.0031104329 ns/iter 1.17
ServiceRegistryFixture/UnregisterServices/256/4/manual_time 2093555.0488599597 ns/iter 1676169.6897374175 ns/iter 1.25
ServiceRegistryFixture/UnregisterServices/1000/4/manual_time 19096170.270270403 ns/iter 15724879.999999883 ns/iter 1.21
ServiceRegistryFixture/UnregisterServices/1/16/manual_time 7110.853826047758 ns/iter 5883.0540940816845 ns/iter 1.21
ServiceRegistryFixture/UnregisterServices/4/16/manual_time 24413.760568992006 ns/iter 20784.035866424518 ns/iter 1.17
ServiceRegistryFixture/UnregisterServices/16/16/manual_time 112689.98461538462 ns/iter 90440.02845316962 ns/iter 1.25
ServiceRegistryFixture/UnregisterServices/64/16/manual_time 587245.5026455274 ns/iter 490767.51233262743 ns/iter 1.20
ServiceRegistryFixture/UnregisterServices/256/16/manual_time 5037167.361111157 ns/iter 4083685.4651163165 ns/iter 1.23
ServiceRegistryFixture/UnregisterServices/1000/16/manual_time 56940515.38461533 ns/iter 44860193.3333333 ns/iter 1.27
ServiceRegistryFixture/UnregisterServices/1/64/manual_time 19185.687645688424 ns/iter 15393.652915015093 ns/iter 1.25
ServiceRegistryFixture/UnregisterServices/4/64/manual_time 60146.32505605903 ns/iter 48577.52127215224 ns/iter 1.24
ServiceRegistryFixture/UnregisterServices/16/64/manual_time 281914.9508756929 ns/iter 221607.12927756427 ns/iter 1.27
ServiceRegistryFixture/UnregisterServices/64/64/manual_time 1749122.7272727408 ns/iter 1421957.7235772314 ns/iter 1.23
ServiceRegistryFixture/UnregisterServices/256/64/manual_time 16004264.28571429 ns/iter 13223704.081632718 ns/iter 1.21
ServiceRegistryFixture/UnregisterServices/1000/64/manual_time 197329474.99999985 ns/iter 160796900 ns/iter 1.23
ServiceRegistryFixture/UnregisterServices/1/256/manual_time 113352.11566737547 ns/iter 92266.64509448576 ns/iter 1.23
ServiceRegistryFixture/UnregisterServices/4/256/manual_time 365674.4260544578 ns/iter 299554.07725322014 ns/iter 1.22
ServiceRegistryFixture/UnregisterServices/16/256/manual_time 1666537.831325301 ns/iter 1335204.743833012 ns/iter 1.25
ServiceRegistryFixture/UnregisterServices/64/256/manual_time 9533310.810810804 ns/iter 7835753.846153837 ns/iter 1.22
ServiceRegistryFixture/UnregisterServices/256/256/manual_time 73481555.55555561 ns/iter 60873966.66666659 ns/iter 1.21
ServiceRegistryFixture/UnregisterServices/1000/256/manual_time 865262799.9999985 ns/iter 672391000.0000004 ns/iter 1.29
ServiceRegistryFixture/UnregisterServices/1/1000/manual_time 516052.8919330291 ns/iter 414427.80058651045 ns/iter 1.25
ServiceRegistryFixture/UnregisterServices/4/1000/manual_time 1787260.0508905882 ns/iter 1438367.3469387742 ns/iter 1.24
ServiceRegistryFixture/UnregisterServices/16/1000/manual_time 8495765.85365854 ns/iter 7165515.306122457 ns/iter 1.19
ServiceRegistryFixture/UnregisterServices/64/1000/manual_time 44440240.00000001 ns/iter 37829921.052631564 ns/iter 1.17
ServiceRegistryFixture/UnregisterServices/256/1000/manual_time 316526149.9999998 ns/iter 272927333.33333325 ns/iter 1.16
ServiceRegistryFixture/UnregisterServices/1000/1000/manual_time 3601036499.9999957 ns/iter 2884786799.9999986 ns/iter 1.25
ServiceRegistryFixture/ModifyServices/1/1/manual_time 6947.97044649591 ns/iter 6025.270810674247 ns/iter 1.15
ServiceRegistryFixture/ModifyServices/4/1/manual_time 28295.490574561256 ns/iter 24033.847422114697 ns/iter 1.18
ServiceRegistryFixture/ModifyServices/16/1/manual_time 127388.293855132 ns/iter 101785.48152458576 ns/iter 1.25
ServiceRegistryFixture/ModifyServices/64/1/manual_time 459504.80704129935 ns/iter 393968.0249009622 ns/iter 1.17
ServiceRegistryFixture/ModifyServices/256/1/manual_time 1878980.92485549 ns/iter 1659789.7959183678 ns/iter 1.13
ServiceRegistryFixture/ModifyServices/1000/1/manual_time 7506420.652173913 ns/iter 6520282.608695649 ns/iter 1.15
ServiceRegistryFixture/ModifyServices/1/4/manual_time 7389.165256867617 ns/iter 6162.136628584854 ns/iter 1.20
ServiceRegistryFixture/ModifyServices/4/4/manual_time 29702.85577536488 ns/iter 25410.575177997787 ns/iter 1.17
ServiceRegistryFixture/ModifyServices/16/4/manual_time 116818.76727923444 ns/iter 108785.16517443639 ns/iter 1.07
ServiceRegistryFixture/ModifyServices/64/4/manual_time 537246.6000000001 ns/iter 404639.40264215926 ns/iter 1.33
ServiceRegistryFixture/ModifyServices/256/4/manual_time 1983374.7774480712 ns/iter 1719522.1153846132 ns/iter 1.15
ServiceRegistryFixture/ModifyServices/1000/4/manual_time 7452572.164948455 ns/iter 6353696.33027523 ns/iter 1.17
ServiceRegistryFixture/ModifyServices/1/16/manual_time 8005.77321257558 ns/iter 6815.030996561033 ns/iter 1.17
ServiceRegistryFixture/ModifyServices/4/16/manual_time 31606.207601520542 ns/iter 27161.481018100832 ns/iter 1.16
ServiceRegistryFixture/ModifyServices/16/16/manual_time 128689.55627705545 ns/iter 110318.51379365369 ns/iter 1.17
ServiceRegistryFixture/ModifyServices/64/16/manual_time 524783.1595829985 ns/iter 442816.5613147918 ns/iter 1.19
ServiceRegistryFixture/ModifyServices/256/16/manual_time 2272913.993174063 ns/iter 1975189.1304347827 ns/iter 1.15
ServiceRegistryFixture/ModifyServices/1000/16/manual_time 8669202.564102562 ns/iter 7214547.959183673 ns/iter 1.20
ServiceRegistryFixture/ModifyServices/1/64/manual_time 11677.759568267433 ns/iter 9565.050178864438 ns/iter 1.22
ServiceRegistryFixture/ModifyServices/4/64/manual_time 44596.34274458134 ns/iter 38088.369541365755 ns/iter 1.17
ServiceRegistryFixture/ModifyServices/16/64/manual_time 178667.57670306877 ns/iter 154597.62711864457 ns/iter 1.16
ServiceRegistryFixture/ModifyServices/64/64/manual_time 733540.1010101003 ns/iter 650495.380434783 ns/iter 1.13
ServiceRegistryFixture/ModifyServices/256/64/manual_time 3145483.4745762716 ns/iter 2538919.2028985494 ns/iter 1.24
ServiceRegistryFixture/ModifyServices/1000/64/manual_time 12365411.111111112 ns/iter 9855611.428571431 ns/iter 1.25
ServiceRegistryFixture/ModifyServices/1/256/manual_time 57375.297712312684 ns/iter 44672.31725286711 ns/iter 1.28
ServiceRegistryFixture/ModifyServices/4/256/manual_time 224813.84083044963 ns/iter 181874.88408036987 ns/iter 1.24
ServiceRegistryFixture/ModifyServices/16/256/manual_time 886307.8580481611 ns/iter 738551.3007284077 ns/iter 1.20
ServiceRegistryFixture/ModifyServices/64/256/manual_time 3826615.384615384 ns/iter 2945233.8912133886 ns/iter 1.30
ServiceRegistryFixture/ModifyServices/256/256/manual_time 14959297.727272725 ns/iter 12093553.44827586 ns/iter 1.24
ServiceRegistryFixture/ModifyServices/1000/256/manual_time 56574341.66666666 ns/iter 49262464.285714306 ns/iter 1.15
ServiceRegistryFixture/ModifyServices/1/1000/manual_time 243600.68259385796 ns/iter 196672.45643619983 ns/iter 1.24
ServiceRegistryFixture/ModifyServices/4/1000/manual_time 945208.7537091976 ns/iter 788221.1845102509 ns/iter 1.20
ServiceRegistryFixture/ModifyServices/16/1000/manual_time 3992251.3812154722 ns/iter 3292618.894009215 ns/iter 1.21
ServiceRegistryFixture/ModifyServices/64/1000/manual_time 16710787.804878054 ns/iter 13124887.037037037 ns/iter 1.27
ServiceRegistryFixture/ModifyServices/256/1000/manual_time 65598800 ns/iter 54297716.666666664 ns/iter 1.21
ServiceRegistryFixture/ModifyServices/1000/1000/manual_time 277330100 ns/iter 220702333.33333334 ns/iter 1.26
ServiceTrackerFixture/OpenServiceTrackerWithSvcRef/manual_time 7876.077133504516 ns/iter 6641.434374830282 ns/iter 1.19
ServiceTrackerFixture/OpenServiceTrackerWithBundleContext/manual_time 11330.380296890567 ns/iter 8170.981798061653 ns/iter 1.39
ServiceTrackerFixture/OpenServiceTrackerWithInterfaceName/manual_time 9549.64475532176 ns/iter 8138.717743897802 ns/iter 1.17
CloseServiceTracker/1000 8894.450024780452 ns/iter 7425.068080354639 ns/iter 1.20
CloseServiceTracker/1024 9204.422301685214 ns/iter 7357.901785718062 ns/iter 1.25
CloseServiceTracker/2048 9247.753358242919 ns/iter 7391.13660714403 ns/iter 1.25
CloseServiceTracker/4096 9775.649553570734 ns/iter 7424.97209821177 ns/iter 1.32
CloseServiceTracker/8192 9418.242329275203 ns/iter 7493.854910717142 ns/iter 1.26
CloseServiceTracker/16384 9651.815393684345 ns/iter 7529.108258929845 ns/iter 1.28
CloseServiceTracker/32768 9393.962526952831 ns/iter 7636.803571432642 ns/iter 1.23
CloseServiceTracker/65536 9563.254687499522 ns/iter 8003.091517859875 ns/iter 1.19
CloseServiceTracker/131072 9991.235937505395 ns/iter 8237.205357143499 ns/iter 1.21
CloseServiceTracker/262144 10095.490625005255 ns/iter 8020.319196429934 ns/iter 1.26
CloseServiceTracker/524288 10029.886027295885 ns/iter 8776.107249525192 ns/iter 1.14
CloseServiceTracker/1000000 10682.371874999319 ns/iter 8513.676724656689 ns/iter 1.25
ServiceTrackerFixture/ServiceTrackerScalability/1 42482.39800359044 ns/iter 45232.38125000262 ns/iter 0.94
ServiceTrackerFixture/ServiceTrackerScalability/4000 30324672.72727114 ns/iter 24212721.428560667 ns/iter 1.25
ServiceTrackerFixture/ServiceTrackerScalability/10000 79430800.00001958 ns/iter 72122066.66670479 ns/iter 1.10
ServiceTrackerFixture/MultipleImplOneInterfaceServiceTrackerScalability/1 42870.442806563864 ns/iter 44944.05472185104 ns/iter 0.95
ServiceTrackerFixture/MultipleImplOneInterfaceServiceTrackerScalability/4000 181768740.0000068 ns/iter 184902949.9999233 ns/iter 0.98
ServiceTrackerFixture/MultipleImplOneInterfaceServiceTrackerScalability/10000 437006849.99998885 ns/iter 468686050.00008756 ns/iter 0.93
ServiceTrackerFixture/ServiceTrackerScalabilityWithLDAPFilter/1 38941.265334552685 ns/iter 41406.445312500546 ns/iter 0.94
ServiceTrackerFixture/ServiceTrackerScalabilityWithLDAPFilter/4000 10561598.21428894 ns/iter 8262013.333332005 ns/iter 1.28
ServiceTrackerFixture/ServiceTrackerScalabilityWithLDAPFilter/10000 29712804.545459386 ns/iter 27617215.62499986 ns/iter 1.08
AnyMapPerfTestFixture/HappyPath/1 543.8013000002684 ns/iter 458.32007998199333 ns/iter 1.19
AnyMapPerfTestFixture/HappyPath/3 1654.26093749943 ns/iter 1369.5448573458757 ns/iter 1.21
AnyMapPerfTestFixture/HappyPath/7 3685.700739818783 ns/iter 3054.875446427526 ns/iter 1.21
AnyMapPerfTestFixture/HappyPath/11 5828.179464283981 ns/iter 4990.960999998606 ns/iter 1.17
AnyMapPerfTestFixture/HappyPath/15 7759.3314732128865 ns/iter 6578.679464285285 ns/iter 1.18
AnyMapPerfTestFixture/HappyPath/18 9617.979830449196 ns/iter 7873.689732146464 ns/iter 1.22
AnyMapPerfTestFixture/HappyPath/20 10513.492187499196 ns/iter 8728.4263392868 ns/iter 1.20
AnyMapPerfTestFixture/ErrorPath/1 6963.206250000147 ns/iter 5742.789285713051 ns/iter 1.21
AnyMapPerfTestFixture/ErrorPath/3 10165.56093750154 ns/iter 8289.955401982157 ns/iter 1.23
AnyMapPerfTestFixture/ErrorPath/7 15632.656249999449 ns/iter 12643.644642862131 ns/iter 1.24
AnyMapPerfTestFixture/ErrorPath/11 20917.67069347963 ns/iter 17185.93562010772 ns/iter 1.22
AnyMapPerfTestFixture/ErrorPath/15 26234.607065619857 ns/iter 21971.16562500412 ns/iter 1.19
AnyMapPerfTestFixture/ErrorPath/18 30966.401785710623 ns/iter 25312.224999993305 ns/iter 1.22
AnyMapPerfTestFixture/ErrorPath/20 33196.449616974554 ns/iter 27772.622443643875 ns/iter 1.20
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/1 829.904575892572 ns/iter 701.5481249997687 ns/iter 1.18
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/3 2376.625807337354 ns/iter 1922.4054664344194 ns/iter 1.24
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/7 5210.277999999562 ns/iter 4273.14937500114 ns/iter 1.22
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/11 8107.4229910730155 ns/iter 6615.501785712955 ns/iter 1.23
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/15 11188.579687498646 ns/iter 9111.10932540223 ns/iter 1.23
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/18 13480.230222187221 ns/iter 10803.057812502459 ns/iter 1.25
AnyMapPerfTestFixture/HappyPath_NoThrowOverload/20 14843.651785716766 ns/iter 11981.217187496895 ns/iter 1.24
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/1 572.6977678571237 ns/iter 478.44087499981924 ns/iter 1.20
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/3 2058.4022750021154 ns/iter 1664.998661831129 ns/iter 1.24
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/7 5019.744000001083 ns/iter 4062.450959909105 ns/iter 1.24
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/11 8176.871651787314 ns/iter 6388.8535714308355 ns/iter 1.28
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/15 10796.20624999933 ns/iter 8736.757871615375 ns/iter 1.24
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/18 13156.64751496856 ns/iter 10550.381249998964 ns/iter 1.25
AnyMapPerfTestFixture/ErrorPath_NoThrowOverload/20 14681.580357144445 ns/iter 11900.248214284862 ns/iter 1.23
BundleInstallFixture/BundleInstallCppFramework/manual_time 315049.9779444193 ns/iter 245027.50696378842 ns/iter 1.29
BundleInstallFixture/LargeBundleInstallCppFramework/manual_time 300129.09502262354 ns/iter 241517.62281003062 ns/iter 1.24
ConstructFilterFromString 848.0960937501234 ns/iter 655.1781250002315 ns/iter 1.29
ConstructNonTrivialFilterFromString 1271.8504687505572 ns/iter 1014.6233863288659 ns/iter 1.25
MatchFilterWithAnyMap/Simple 541.4760714286006 ns/iter 458.92086368192287 ns/iter 1.18
MatchFilterWithAnyMap/Complex 628.8662499997599 ns/iter 516.4872000000287 ns/iter 1.22
MatchFilterWithBundle/Simple 272.45419296666296 ns/iter 220.08158258015197 ns/iter 1.24
MatchFilterWithBundle/Complex 448.77356249998 ns/iter 355.05604710054286 ns/iter 1.26
MatchFilterWithServiceReference/Simple 262.30758313872064 ns/iter 226.11781250006405 ns/iter 1.16
MatchFilterWithServiceReference/Complex 324.65264447699235 ns/iter 281.06142941697914 ns/iter 1.16
ConstructFilterIncremental 2898.587720377854 ns/iter 2401.417632345359 ns/iter 1.21
ConstructFilterNotOperator 1248.3255357145545 ns/iter 1015.8575375636252 ns/iter 1.23
ServiceFixture/GetServiceReferenceByInterface 1783.8645391649243 ns/iter 1567.9667410708473 ns/iter 1.14
ServiceFixture/GetServiceReferenceByClassName 1543.555580356935 ns/iter 1362.6415791777454 ns/iter 1.13
ServiceFixture/GetAllServiceReferencesByInterface 1606.982142857102 ns/iter 1413.7892795582313 ns/iter 1.14
ServiceFixture/GetAllServiceReferencesByClassName 1184.2153125002142 ns/iter 1074.5395312497408 ns/iter 1.10
ServiceFixture/GetAllServiceReferencesByClassNameAndLDAPFilter 895.0571004205385 ns/iter 748.6447544644242 ns/iter 1.20
ServiceFixture/GetAllServiceReferencesByInterfaceAndLDAPFilter 842.0348026634297 ns/iter 694.8978794640531 ns/iter 1.21

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

Please sign in to comment.