Revert "Tune snapshot taking progress indicator."
This reverts commit 630437a0239ce4de029ea367083cb12a8099506c. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
482325ec2f
commit
9408c5c8bf
@ -3166,7 +3166,7 @@ bool HeapSnapshotGenerator::GenerateSnapshot() {
|
||||
debug_heap->Verify();
|
||||
#endif
|
||||
|
||||
SetProgressTotal(2); // 2 passes.
|
||||
SetProgressTotal(4); // 2 passes + dominators + sizes.
|
||||
|
||||
#ifdef DEBUG
|
||||
debug_heap->Verify();
|
||||
@ -3303,9 +3303,10 @@ bool HeapSnapshotGenerator::BuildDominatorTree(
|
||||
affected[children[i].to()->ordered_index()] = true;
|
||||
}
|
||||
|
||||
bool changed = true;
|
||||
while (changed) {
|
||||
changed = false;
|
||||
int changed = 1;
|
||||
const int base_progress_counter = progress_counter_;
|
||||
while (changed != 0) {
|
||||
changed = 0;
|
||||
for (int i = root_index - 1; i >= 0; --i) {
|
||||
// If dominator of the entry has already been set to root,
|
||||
// then it can't propagate any further.
|
||||
@ -3329,13 +3330,17 @@ bool HeapSnapshotGenerator::BuildDominatorTree(
|
||||
if (new_idom_index != kNoDominator
|
||||
&& dominators->at(i) != new_idom_index) {
|
||||
(*dominators)[i] = new_idom_index;
|
||||
changed = true;
|
||||
++changed;
|
||||
Vector<HeapGraphEdge> children = entries[i]->children();
|
||||
for (int j = 0; j < children.length(); ++j) {
|
||||
affected[children[j].to()->ordered_index()] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
int remaining = entries_length - changed;
|
||||
ASSERT(remaining >= 0);
|
||||
progress_counter_ = base_progress_counter + remaining;
|
||||
if (!ProgressReport(true)) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -3359,19 +3364,21 @@ bool HeapSnapshotGenerator::ApproximateRetainedSizes() {
|
||||
// As for the dominators tree we only know parent nodes, not
|
||||
// children, to sum up total sizes we "bubble" node's self size
|
||||
// adding it to all of its parents.
|
||||
List<HeapEntry*>& entries = *snapshot_->entries();
|
||||
for (int i = 0; i < entries.length(); ++i) {
|
||||
HeapEntry* entry = entries[i];
|
||||
for (int i = 0; i < snapshot_->entries()->length(); ++i) {
|
||||
HeapEntry* entry = snapshot_->entries()->at(i);
|
||||
entry->set_retained_size(entry->self_size());
|
||||
}
|
||||
for (int i = 0; i < entries.length(); ++i) {
|
||||
HeapEntry* entry = entries[i];
|
||||
for (int i = 0;
|
||||
i < snapshot_->entries()->length();
|
||||
++i, ProgressStep()) {
|
||||
HeapEntry* entry = snapshot_->entries()->at(i);
|
||||
int entry_size = entry->self_size();
|
||||
for (HeapEntry* dominator = entry->dominator();
|
||||
dominator != entry;
|
||||
entry = dominator, dominator = entry->dominator()) {
|
||||
dominator->add_retained_size(entry_size);
|
||||
}
|
||||
if (!ProgressReport()) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user