From 6f77ab124c1d1f8ba8b823d1bfcd5d8481d998d5 Mon Sep 17 00:00:00 2001 From: "mstarzinger@chromium.org" Date: Fri, 18 Oct 2013 09:50:06 +0000 Subject: [PATCH] Revert "HeapProfiler: for the test purposes we would like to trace object movements." This reverts r17263 because of compile failures accross all builds. TBR=loislo@chromium.org Review URL: https://codereview.chromium.org/28773002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/builtins.cc | 9 ++- src/flag-definitions.h | 6 -- src/heap-snapshot-generator.cc | 127 +-------------------------------- 3 files changed, 6 insertions(+), 136 deletions(-) diff --git a/src/builtins.cc b/src/builtins.cc index 4b8865ab12..03fac2d109 100644 --- a/src/builtins.cc +++ b/src/builtins.cc @@ -273,15 +273,14 @@ static FixedArrayBase* LeftTrimFixedArray(Heap* heap, MemoryChunk::IncrementLiveBytesFromMutator(elms->address(), -size_delta); } - FixedArrayBase* new_elms = FixedArrayBase::cast(HeapObject::FromAddress( - elms->address() + size_delta)); HeapProfiler* profiler = heap->isolate()->heap_profiler(); if (profiler->is_profiling()) { profiler->ObjectMoveEvent(elms->address(), - new_elms->address(), - new_elms->Size()); + elms->address() + size_delta, + elms->Size()); } - return new_elms; + return FixedArrayBase::cast(HeapObject::FromAddress( + elms->address() + to_trim * entry_size)); } diff --git a/src/flag-definitions.h b/src/flag-definitions.h index e7180a0ccb..379ae698ca 100644 --- a/src/flag-definitions.h +++ b/src/flag-definitions.h @@ -541,12 +541,6 @@ DEFINE_int(sweeper_threads, 0, DEFINE_bool(verify_heap, false, "verify heap pointers before and after GC") #endif - -// heap-snapshot-generator.cc -DEFINE_bool(heap_profiler_trace_objects, false, - "Dump heap object allocations/movements/size_updates") - - // v8.cc DEFINE_bool(use_idle_notification, true, "Use idle notification to reduce memory footprint.") diff --git a/src/heap-snapshot-generator.cc b/src/heap-snapshot-generator.cc index 2debeb0532..444bebf891 100644 --- a/src/heap-snapshot-generator.cc +++ b/src/heap-snapshot-generator.cc @@ -431,13 +431,6 @@ void HeapObjectsMap::MoveObject(Address from, Address to, int object_size) { // Size of an object can change during its life, so to keep information // about the object in entries_ consistent, we have to adjust size when the // object is migrated. - if (FLAG_heap_profiler_trace_objects) { - PrintF("Move object from %p to %p old size %6d new size %6d\n", - from, - to, - entries_.at(from_entry_info_index).size, - object_size); - } entries_.at(from_entry_info_index).size = object_size; to_entry->value = from_value; } @@ -445,12 +438,6 @@ void HeapObjectsMap::MoveObject(Address from, Address to, int object_size) { void HeapObjectsMap::NewObject(Address addr, int size) { - if (FLAG_heap_profiler_trace_objects) { - PrintF("New object : %p %6d. Next address is %p\n", - addr, - size, - addr + size); - } ASSERT(addr != NULL); FindOrAddEntry(addr, size, false); } @@ -483,12 +470,6 @@ SnapshotObjectId HeapObjectsMap::FindOrAddEntry(Address addr, static_cast(reinterpret_cast(entry->value)); EntryInfo& entry_info = entries_.at(entry_index); entry_info.accessed = accessed; - if (FLAG_heap_profiler_trace_objects) { - PrintF("Update object size : %p with old size %d and new size %d\n", - addr, - entry_info.size, - size); - } entry_info.size = size; return entry_info.id; } @@ -507,10 +488,6 @@ void HeapObjectsMap::StopHeapObjectsTracking() { void HeapObjectsMap::UpdateHeapObjectsMap() { - if (FLAG_heap_profiler_trace_objects) { - PrintF("Begin HeapObjectsMap::UpdateHeapObjectsMap. map has %d entries.\n", - entries_map_.occupancy()); - } heap_->CollectAllGarbage(Heap::kMakeHeapIterableMask, "HeapSnapshotsCollection::UpdateHeapObjectsMap"); HeapIterator iterator(heap_); @@ -518,70 +495,12 @@ void HeapObjectsMap::UpdateHeapObjectsMap() { obj != NULL; obj = iterator.next()) { FindOrAddEntry(obj->address(), obj->Size()); - if (FLAG_heap_profiler_trace_objects) { - PrintF("Update object : %p %6d. Next address is %p\n", - obj->address(), - obj->Size(), - obj->address() + obj->Size()); - } } RemoveDeadEntries(); - if (FLAG_heap_profiler_trace_objects) { - PrintF("End HeapObjectsMap::UpdateHeapObjectsMap. map has %d entries.\n", - entries_map_.occupancy()); - } } -namespace { - - -struct HeapObjectInfo { - HeapObjectInfo(HeapObject* obj, size_t expected_size) - : obj(obj), - expected_size(expected_size) { - } - - HeapObject* obj; - size_t expected_size; - - bool IsValid() const { return expected_size == obj->Size(); } - - void Print() const { - if (expected_size == 0) { - PrintF("Untracked object : %p %6d. Next address is %p\n", - obj->address(), - obj->Size(), - obj->address() + obj->Size()); - } else if (obj->Size() != expected_size) { - PrintF("Wrong size %6d: %p %6d. Next address is %p\n", - expected_size, - obj->address(), - obj->Size(), - obj->address() + obj->Size()); - } else { - PrintF("Good object : %p %6d. Next address is %p\n", - obj->address(), - expected_size, - obj->address() + obj->Size()); - } - } -}; - - -static int comparator(const HeapObjectInfo* a, const HeapObjectInfo* b) { - if (a->obj < b->obj) return -1; - if (a->obj > b->obj) return 1; - return 0; -} - - -} // namespace - - int HeapObjectsMap::FindUntrackedObjects() { - List heap_objects(1000); - HeapIterator iterator(heap_); int untracked = 0; for (HeapObject* obj = iterator.next(); @@ -590,56 +509,14 @@ int HeapObjectsMap::FindUntrackedObjects() { HashMap::Entry* entry = entries_map_.Lookup( obj->address(), ComputePointerHash(obj->address()), false); if (entry == NULL) { - ++untracked; - if (FLAG_heap_profiler_trace_objects) { - heap_objects.Add(HeapObjectInfo(obj, 0)); - } + untracked++; } else { int entry_index = static_cast( reinterpret_cast(entry->value)); EntryInfo& entry_info = entries_.at(entry_index); - if (FLAG_heap_profiler_trace_objects) { - heap_objects.Add(HeapObjectInfo(obj, - static_cast(entry_info.size))); - if (obj->Size() != static_cast(entry_info.size)) - ++untracked; - } else { - CHECK_EQ(obj->Size(), static_cast(entry_info.size)); - } + CHECK_EQ(obj->Size(), static_cast(entry_info.size)); } } - if (FLAG_heap_profiler_trace_objects) { - PrintF("\nBegin HeapObjectsMap::FindUntrackedObjects. %d entries in map.\n", - entries_map_.occupancy()); - heap_objects.Sort(comparator); - int last_printed_object = -1; - bool print_next_object = false; - for (int i = 0; i < heap_objects.length(); ++i) { - const HeapObjectInfo& object_info = heap_objects[i]; - if (!object_info.IsValid()) { - ++untracked; - if (last_printed_object != i - 1) { - if (i > 0) { - PrintF("%d objects were skipped\n", i - 1 - last_printed_object); - heap_objects[i - 1].Print(); - } - } - object_info.Print(); - last_printed_object = i; - print_next_object = true; - } else if (print_next_object) { - object_info.Print(); - print_next_object = false; - last_printed_object = i; - } - } - if (last_printed_object < heap_objects.length() - 1) { - PrintF("Last %d objects were skipped\n", - heap_objects.length() - 1 - last_printed_object); - } - PrintF("End HeapObjectsMap::FindUntrackedObjects. %d entries in map.\n\n", - entries_map_.occupancy()); - } return untracked; }