Chromium Code Reviews
DescriptionChanges new space allocation from simple bump pointer allocation from
mutator to thread local allocation buffer system used only by mutator.
The new allocation scheme is as follows:
- Mutator allocates an aligned buffer from the heap.
- For each object the mutator wishes to allocate
- If the object fits in the overall space of the bufffer,
bump allocate into the buffer.
- If the object is larger than the buffer overall, allocate into old
space.
- If the object is not larger than the buffer but cannot fit,
make the buffer iterable by GC and allocate a new buffer.
- If the mutator cannot get a new buffer, do a GC and try again.
- If the mutator still cannot get a new buffer, allocate the object
in old space.
- If the mutator does get a new buffer (before or after GC), allocate
the object into the buffer.
BUG=
R=asiva@google.com, rmacnak@google.com
Committed: https://github.com/dart-lang/sdk/commit/e6e378bb6eb5ba90f890399a889b8daad8418c45
Patch Set 1 #
Total comments: 22
Patch Set 2 : Zeroes out TLAB when needed. Changes variable and fn names #
Total comments: 12
Patch Set 3 : Fixes formatting and properly abandons mutator thread TLAB #
Messages
Total messages: 9 (1 generated)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||