Closed Bug 548158 Opened 15 years ago Closed 6 years ago

Some evidence of sub-par fragmentation avoidance strategies

Categories

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

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX
Future

People

(Reporter: cpeyer, Unassigned)

References

Details

Attachments

(3 files)

Attached file Modified testcase from Bug 531270 (deleted) —
Testcase from Bug 531270. Talked with Lars about testcase consuming an ever-increasing amount of memory and he believes that it should stabilize after a while. After running for 15 min, memory went from 50,286k to 73,175k on OSX with TR 3895.
Flags: flashplayer-triage+
Flags: flashplayer-qrb?
Memory also increases without stabilizing on windows.
Component: Virtual Machine → Garbage Collection (mmGC)
QA Contact: vm → gc
Assignee: nobody → lhansen
Flags: flashplayer-qrb? → flashplayer-qrb+
Priority: -- → P2
Target Milestone: --- → flash10.1
Flags: in-testsuite?
I've tested this some. Running with -gcbehavior we see that the floor for memory following GC is level, ie, GC effectively recovers memory down to the same level regularly. Ergo it's not GC objects that are leaking. I thought it might have something to do with incremental GC and timing (ie incremental GC not finishing before the next iteration starting, and therefore requiring some duplicate large data structures) but running with -Dnoincgc the same growth pattern is observed, so that's not likely.
It /does/ stabilize :-) But it takes a long time. I gave it 1h14m of CPU time on my development system and it stabilizes twice, first at 67MB and then at 73MB. This is classical fragmentation behavior, probably brought on by the large tables in use in the test as well as in GCHeap and in the weak pointers system. The discontinuity in the heap system could just be the result of growing a table, failing to allocate the new one, and expanding the heap to accomodate it. Will attach a plot showing the behavior over time, as well as the log of heap data. I suggest that this bug be deferred, it's probable that we will at least want to look into strategies for block reuse as well as different data structures for the block table and the weak table. But as there's no evidence of a leak per se, we should not push for a change now.
Attached image Plot of heap size over time (deleted) —
Flags: flashplayer-qrb+ → flashplayer-qrb?
Assignee: lhansen → nobody
Flags: flashplayer-qrb? → flashplayer-qrb+
Target Milestone: flash10.1 → flash10.2
Priority: P2 → --
Target Milestone: flash10.2 → Future
Summary: Mem consumption doesn't stabilize when creating / destroying same objects over and over. → Some evidence of sub-par fragmentation avoidance strategies
Depends on: 584214
No longer depends on: 584214
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: