1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-08 03:27:04 +09:00

bucket tweaks

This commit is contained in:
vsadov 2022-06-18 18:35:33 -07:00
parent 547d8d0ea0
commit 8cd5724a3a
3 changed files with 4 additions and 4 deletions

View file

@ -3491,7 +3491,7 @@ void SatoriRecycler::KeepRegion(SatoriRegion* curRegion)
// we will try reusing half-empty regions, unless they are too fragmented
curRegion->ReusableFor() = SatoriRegion::ReuseLevel::None;
if (curRegion->Occupancy() < Satori::REGION_SIZE_GRANULARITY / 2 &&
curRegion->HasFreeSpaceInTop4Buckets())
curRegion->HasFreeSpaceInTopNBuckets(IsLowLatencyMode() ? 6 : 2))
{
_ASSERTE(curRegion->Size() == Satori::REGION_SIZE_GRANULARITY);

View file

@ -331,10 +331,10 @@ bool SatoriRegion::HasFreeSpaceInTopBucket()
return m_freeLists[Satori::FREELIST_COUNT - 1];
}
bool SatoriRegion::HasFreeSpaceInTop4Buckets()
bool SatoriRegion::HasFreeSpaceInTopNBuckets(int n)
{
//TUNING: more buckets means more aggressive demotion.
for (int bucket = Satori::FREELIST_COUNT - 4; bucket < Satori::FREELIST_COUNT; bucket++)
for (int bucket = Satori::FREELIST_COUNT - n; bucket < Satori::FREELIST_COUNT; bucket++)
{
if (m_freeLists[bucket])
{

View file

@ -79,7 +79,7 @@ public:
void AddFreeSpace(SatoriObject* freeObj);
bool HasFreeSpaceInTopBucket();
bool HasFreeSpaceInTop4Buckets();
bool HasFreeSpaceInTopNBuckets(int n);
void StartEscapeTrackingRelease(size_t threadTag);
void StopEscapeTracking();