GC collection heuristics busted

VERIFIED DUPLICATE of bug 486504

Status

Tamarin
Garbage Collection (mmGC)
P2
normal
VERIFIED DUPLICATE of bug 486504
10 years ago
8 years ago

People

(Reporter: Tommy Reilly, Assigned: Rishit Shah)

Tracking

unspecified
flash10.1
Bug Flags:
flashplayer-qrb +
flashplayer-triage +

Details

(Reporter)

Description

10 years ago
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.
(Reporter)

Updated

10 years ago
OS: Windows XP → All
Hardware: PC → All

Comment 1

9 years ago
is this still active? has the fix been integrated in mmgc?

Updated

9 years ago
Flags: flashplayer-triage+
Flags: flashplayer-qrb?

Comment 2

9 years ago
Alive and well.
Blocks: 486504

Updated

9 years ago
Flags: flashplayer-qrb? → flashplayer-qrb+
Priority: -- → P2
Target Milestone: --- → flash10.x

Comment 3

9 years ago
See also bug #486504 for related issues.

Updated

9 years ago
Summary: GC collection huerstics busted → GC collection hueristics busted

Updated

9 years ago
Summary: GC collection hueristics busted → GC collection heuristics busted

Updated

9 years ago
Assignee: treilly → rishah
Status: NEW → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 486504

Updated

8 years ago
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.