replaced get_cumulative_stats() with direct access to cstats

This commit is contained in:
joaquintides
2024-05-03 18:11:13 +02:00
parent 223f64752d
commit c1317cb5be
3 changed files with 10 additions and 21 deletions

View File

@ -514,8 +514,7 @@ public:
x.arrays=ah.release(); x.arrays=ah.release();
x.size_ctrl.ml=x.initial_max_load(); x.size_ctrl.ml=x.initial_max_load();
x.size_ctrl.size=0; x.size_ctrl.size=0;
BOOST_UNORDERED_SWAP_STATS( BOOST_UNORDERED_SWAP_STATS(this->cstats,x.cstats);
this->get_cumulative_stats(),x.get_cumulative_stats());
} }
concurrent_table(compatible_nonconcurrent_table&& x): concurrent_table(compatible_nonconcurrent_table&& x):
@ -1216,8 +1215,7 @@ private:
if(BOOST_LIKELY(bool(this->pred()(x,this->key_from(p[n]))))){ if(BOOST_LIKELY(bool(this->pred()(x,this->key_from(p[n]))))){
f(pg,n,p+n); f(pg,n,p+n);
BOOST_UNORDERED_ADD_STATS( BOOST_UNORDERED_ADD_STATS(
this->get_cumulative_stats().successful_lookup, this->cstats.successful_lookup,(pb.length(),num_cmps));
(pb.length(),num_cmps));
return 1; return 1;
} }
} }
@ -1226,14 +1224,13 @@ private:
} }
if(BOOST_LIKELY(pg->is_not_overflowed(hash))){ if(BOOST_LIKELY(pg->is_not_overflowed(hash))){
BOOST_UNORDERED_ADD_STATS( BOOST_UNORDERED_ADD_STATS(
this->get_cumulative_stats().unsuccessful_lookup, this->cstats.unsuccessful_lookup,(pb.length(),num_cmps));
(pb.length(),num_cmps));
return 0; return 0;
} }
} }
while(BOOST_LIKELY(pb.next(this->arrays.groups_size_mask))); while(BOOST_LIKELY(pb.next(this->arrays.groups_size_mask)));
BOOST_UNORDERED_ADD_STATS( BOOST_UNORDERED_ADD_STATS(
this->get_cumulative_stats().unsuccessful_lookup,(pb.length(),num_cmps)); this->cstats.unsuccessful_lookup,(pb.length(),num_cmps));
return 0; return 0;
} }
@ -1514,8 +1511,7 @@ private:
this->construct_element(p,std::forward<Args>(args)...); this->construct_element(p,std::forward<Args>(args)...);
rslot.commit(); rslot.commit();
rsize.commit(); rsize.commit();
BOOST_UNORDERED_ADD_STATS( BOOST_UNORDERED_ADD_STATS(this->cstats.insertion,(pb.length()));
this->get_cumulative_stats().insertion,(pb.length()));
return 1; return 1;
} }
pg->mark_overflow(hash); pg->mark_overflow(hash);

View File

@ -1719,7 +1719,7 @@ public:
auto n=unchecked_countr_zero(mask); auto n=unchecked_countr_zero(mask);
if(BOOST_LIKELY(bool(pred()(x,key_from(p[n]))))){ if(BOOST_LIKELY(bool(pred()(x,key_from(p[n]))))){
BOOST_UNORDERED_ADD_STATS( BOOST_UNORDERED_ADD_STATS(
get_cumulative_stats().successful_lookup,(pb.length(),num_cmps)); cstats.successful_lookup,(pb.length(),num_cmps));
return {pg,n,p+n}; return {pg,n,p+n};
} }
mask&=mask-1; mask&=mask-1;
@ -1727,13 +1727,13 @@ public:
} }
if(BOOST_LIKELY(pg->is_not_overflowed(hash))){ if(BOOST_LIKELY(pg->is_not_overflowed(hash))){
BOOST_UNORDERED_ADD_STATS( BOOST_UNORDERED_ADD_STATS(
get_cumulative_stats().unsuccessful_lookup,(pb.length(),num_cmps)); cstats.unsuccessful_lookup,(pb.length(),num_cmps));
return {}; return {};
} }
} }
while(BOOST_LIKELY(pb.next(arrays.groups_size_mask))); while(BOOST_LIKELY(pb.next(arrays.groups_size_mask)));
BOOST_UNORDERED_ADD_STATS( BOOST_UNORDERED_ADD_STATS(
get_cumulative_stats().unsuccessful_lookup,(pb.length(),num_cmps)); cstats.unsuccessful_lookup,(pb.length(),num_cmps));
return {}; return {};
} }
@ -1842,11 +1842,6 @@ public:
}; };
} }
cumulative_stats& get_cumulative_stats()const noexcept
{
return cstats;
}
void reset_stats() void reset_stats()
{ {
cstats.insertion.reset(); cstats.insertion.reset();
@ -2356,8 +2351,7 @@ private:
auto p=arrays_.elements()+pos*N+n; auto p=arrays_.elements()+pos*N+n;
construct_element(p,std::forward<Args>(args)...); construct_element(p,std::forward<Args>(args)...);
pg->set(n,hash); pg->set(n,hash);
BOOST_UNORDERED_ADD_STATS( BOOST_UNORDERED_ADD_STATS(cstats.insertion,(pb.length()));
get_cumulative_stats().insertion,(pb.length()));
return {pg,n,p}; return {pg,n,p};
} }
else pg->mark_overflow(hash); else pg->mark_overflow(hash);

View File

@ -593,8 +593,7 @@ private:
x.arrays=ah.release(); x.arrays=ah.release();
x.size_ctrl.ml=x.initial_max_load(); x.size_ctrl.ml=x.initial_max_load();
x.size_ctrl.size=0; x.size_ctrl.size=0;
BOOST_UNORDERED_SWAP_STATS( BOOST_UNORDERED_SWAP_STATS(this->cstats,x.cstats);
this->get_cumulative_stats(),x.get_cumulative_stats());
} }
template<typename ExclusiveLockGuard> template<typename ExclusiveLockGuard>