mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-08 03:27:04 +09:00
bucket tweaks
This commit is contained in:
parent
547d8d0ea0
commit
8cd5724a3a
3 changed files with 4 additions and 4 deletions
|
@ -3491,7 +3491,7 @@ void SatoriRecycler::KeepRegion(SatoriRegion* curRegion)
|
||||||
// we will try reusing half-empty regions, unless they are too fragmented
|
// we will try reusing half-empty regions, unless they are too fragmented
|
||||||
curRegion->ReusableFor() = SatoriRegion::ReuseLevel::None;
|
curRegion->ReusableFor() = SatoriRegion::ReuseLevel::None;
|
||||||
if (curRegion->Occupancy() < Satori::REGION_SIZE_GRANULARITY / 2 &&
|
if (curRegion->Occupancy() < Satori::REGION_SIZE_GRANULARITY / 2 &&
|
||||||
curRegion->HasFreeSpaceInTop4Buckets())
|
curRegion->HasFreeSpaceInTopNBuckets(IsLowLatencyMode() ? 6 : 2))
|
||||||
{
|
{
|
||||||
_ASSERTE(curRegion->Size() == Satori::REGION_SIZE_GRANULARITY);
|
_ASSERTE(curRegion->Size() == Satori::REGION_SIZE_GRANULARITY);
|
||||||
|
|
||||||
|
|
|
@ -331,10 +331,10 @@ bool SatoriRegion::HasFreeSpaceInTopBucket()
|
||||||
return m_freeLists[Satori::FREELIST_COUNT - 1];
|
return m_freeLists[Satori::FREELIST_COUNT - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SatoriRegion::HasFreeSpaceInTop4Buckets()
|
bool SatoriRegion::HasFreeSpaceInTopNBuckets(int n)
|
||||||
{
|
{
|
||||||
//TUNING: more buckets means more aggressive demotion.
|
//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])
|
if (m_freeLists[bucket])
|
||||||
{
|
{
|
||||||
|
|
|
@ -79,7 +79,7 @@ public:
|
||||||
void AddFreeSpace(SatoriObject* freeObj);
|
void AddFreeSpace(SatoriObject* freeObj);
|
||||||
|
|
||||||
bool HasFreeSpaceInTopBucket();
|
bool HasFreeSpaceInTopBucket();
|
||||||
bool HasFreeSpaceInTop4Buckets();
|
bool HasFreeSpaceInTopNBuckets(int n);
|
||||||
|
|
||||||
void StartEscapeTrackingRelease(size_t threadTag);
|
void StartEscapeTrackingRelease(size_t threadTag);
|
||||||
void StopEscapeTracking();
|
void StopEscapeTracking();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue