Restore the bytes promoted counter.
Review URL: https://codereview.chromium.org//11783015 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16764 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
@@ -74,6 +74,7 @@ class ScavengerVisitor : public ObjectPointerVisitor {
|
||||
vm_heap_(Dart::vm_isolate()->heap()),
|
||||
delayed_weak_stack_(),
|
||||
growth_policy_(PageSpace::kControlGrowth),
|
||||
bytes_promoted_(0),
|
||||
visiting_old_pointers_(false),
|
||||
in_scavenge_pointer_(false) {}
|
||||
|
||||
@@ -108,6 +109,8 @@ class ScavengerVisitor : public ObjectPointerVisitor {
|
||||
}
|
||||
}
|
||||
|
||||
intptr_t bytes_promoted() const { return bytes_promoted_; }
|
||||
|
||||
private:
|
||||
void UpdateStoreBuffer(RawObject** p, RawObject* obj) {
|
||||
uword ptr = reinterpret_cast<uword>(p);
|
||||
@@ -184,6 +187,7 @@ class ScavengerVisitor : public ObjectPointerVisitor {
|
||||
// If promotion succeeded then we need to remember it so that it can
|
||||
// be traversed later.
|
||||
scavenger_->PushToPromotedStack(new_addr);
|
||||
bytes_promoted_ += size;
|
||||
if (HeapTrace::is_enabled()) {
|
||||
heap_->trace()->TracePromotion(raw_addr, new_addr);
|
||||
}
|
||||
@@ -196,6 +200,7 @@ class ScavengerVisitor : public ObjectPointerVisitor {
|
||||
new_addr = heap_->TryAllocate(size, Heap::kOld, growth_policy_);
|
||||
if (new_addr != 0) {
|
||||
scavenger_->PushToPromotedStack(new_addr);
|
||||
bytes_promoted_ += size;
|
||||
if (HeapTrace::is_enabled()) {
|
||||
heap_->trace()->TracePromotion(raw_addr, new_addr);
|
||||
}
|
||||
@@ -242,6 +247,9 @@ class ScavengerVisitor : public ObjectPointerVisitor {
|
||||
DelaySet delay_set_;
|
||||
GrowableArray<RawObject*> delayed_weak_stack_;
|
||||
PageSpace::GrowthPolicy growth_policy_;
|
||||
// TODO(cshapiro): use this value to compute survival statistics for
|
||||
// new space growth policy.
|
||||
intptr_t bytes_promoted_;
|
||||
|
||||
bool visiting_old_pointers_;
|
||||
bool in_scavenge_pointer_;
|
||||
|
||||
Reference in New Issue
Block a user