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:
cshapiro@google.com
2013-01-07 23:16:44 +00:00
parent 021b6438c5
commit b8a784591f
+8
View File
@@ -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_;