Closed Bug 412370 Opened 17 years ago Closed 15 years ago

GC collection heuristics busted

Categories

(Tamarin Graveyard :: Garbage Collection (mmGC), defect, P2)

defect

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 486504
flash10.1

People

(Reporter: treilly, Assigned: rishah)

References

Details

if(!marking && !collecting &&
			heapSizeAtLastAlloc > collectThreshold &&
			now - lastSweepTicks > kMarkSweepBurstTicks && 
			heapSizeAtLastAlloc < heap->GetTotalHeapSize()) 
		{
			if(incremental)
				StartIncrementalMark();
			else
				Collect();
		}

Should be:

	if((!marking && !collecting &&
			heapSizeAtLastAlloc > collectThreshold &&
			now - lastSweepTicks > kMarkSweepBurstTicks) 
                     || 
			heapSizeAtLastAlloc < heap->GetTotalHeapSize()) 
		{
			if(incremental)
				StartIncrementalMark();
			else
				Collect();
		}

Written this way the first clause will be true frequently, its missing a condition based on kFreeSpaceDivisor (collect if the free space is less than the total heap size / kFreeSpaceDivisor)

This has been working okay in practice accidentally b/c non-GC allocations are so common in the player.
OS: Windows XP → All
Hardware: PC → All
is this still active? has the fix been integrated in mmgc?
Flags: flashplayer-triage+
Flags: flashplayer-qrb?
Alive and well.
Blocks: 486504
Flags: flashplayer-qrb? → flashplayer-qrb+
Priority: -- → P2
Target Milestone: --- → flash10.x
See also bug #486504 for related issues.
Summary: GC collection huerstics busted → GC collection hueristics busted
Summary: GC collection hueristics busted → GC collection heuristics busted
Assignee: treilly → rishah
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → DUPLICATE
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.