diff options
Diffstat (limited to 'deps/v8/src/heap.cc')
-rw-r--r-- | deps/v8/src/heap.cc | 74 |
1 files changed, 13 insertions, 61 deletions
diff --git a/deps/v8/src/heap.cc b/deps/v8/src/heap.cc index 508bdf3c49..98a2d3374b 100644 --- a/deps/v8/src/heap.cc +++ b/deps/v8/src/heap.cc @@ -293,12 +293,11 @@ GarbageCollector Heap::SelectGarbageCollector(AllocationSpace space) { // TODO(1238405): Combine the infrastructure for --heap-stats and // --log-gc to avoid the complicated preprocessor and flag testing. -#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) void Heap::ReportStatisticsBeforeGC() { // Heap::ReportHeapStatistics will also log NewSpace statistics when - // compiled with ENABLE_LOGGING_AND_PROFILING and --log-gc is set. The - // following logic is used to avoid double logging. -#if defined(DEBUG) && defined(ENABLE_LOGGING_AND_PROFILING) + // compiled --log-gc is set. The following logic is used to avoid + // double logging. +#ifdef DEBUG if (FLAG_heap_stats || FLAG_log_gc) new_space_.CollectStatistics(); if (FLAG_heap_stats) { ReportHeapStatistics("Before GC"); @@ -306,23 +305,16 @@ void Heap::ReportStatisticsBeforeGC() { new_space_.ReportStatistics(); } if (FLAG_heap_stats || FLAG_log_gc) new_space_.ClearHistograms(); -#elif defined(DEBUG) - if (FLAG_heap_stats) { - new_space_.CollectStatistics(); - ReportHeapStatistics("Before GC"); - new_space_.ClearHistograms(); - } -#elif defined(ENABLE_LOGGING_AND_PROFILING) +#else if (FLAG_log_gc) { new_space_.CollectStatistics(); new_space_.ReportStatistics(); new_space_.ClearHistograms(); } -#endif +#endif // DEBUG } -#if defined(ENABLE_LOGGING_AND_PROFILING) void Heap::PrintShortHeapStatistics() { if (!FLAG_trace_gc_verbose) return; PrintF("Memory allocator, used: %8" V8_PTR_PREFIX "d" @@ -368,7 +360,6 @@ void Heap::PrintShortHeapStatistics() { lo_space_->Size(), lo_space_->Available()); } -#endif // TODO(1238405): Combine the infrastructure for --heap-stats and @@ -376,20 +367,17 @@ void Heap::PrintShortHeapStatistics() { void Heap::ReportStatisticsAfterGC() { // Similar to the before GC, we use some complicated logic to ensure that // NewSpace statistics are logged exactly once when --log-gc is turned on. -#if defined(DEBUG) && defined(ENABLE_LOGGING_AND_PROFILING) +#if defined(DEBUG) if (FLAG_heap_stats) { new_space_.CollectStatistics(); ReportHeapStatistics("After GC"); } else if (FLAG_log_gc) { new_space_.ReportStatistics(); } -#elif defined(DEBUG) - if (FLAG_heap_stats) ReportHeapStatistics("After GC"); -#elif defined(ENABLE_LOGGING_AND_PROFILING) +#else if (FLAG_log_gc) new_space_.ReportStatistics(); -#endif +#endif // DEBUG } -#endif // defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) void Heap::GarbageCollectionPrologue() { @@ -406,11 +394,11 @@ void Heap::GarbageCollectionPrologue() { } if (FLAG_gc_verbose) Print(); -#endif +#endif // DEBUG -#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) +#if defined(DEBUG) ReportStatisticsBeforeGC(); -#endif +#endif // DEBUG LiveObjectList::GCPrologue(); } @@ -447,12 +435,10 @@ void Heap::GarbageCollectionEpilogue() { symbol_table()->Capacity()); isolate_->counters()->number_of_symbols()->Set( symbol_table()->NumberOfElements()); -#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) +#if defined(DEBUG) ReportStatisticsAfterGC(); -#endif -#ifdef ENABLE_DEBUGGER_SUPPORT +#endif // DEBUG isolate_->debug()->AfterGarbageCollection(); -#endif } @@ -1335,15 +1321,12 @@ class ScavengingVisitor : public StaticVisitorBase { enum ObjectContents { DATA_OBJECT, POINTER_OBJECT }; enum SizeRestriction { SMALL, UNKNOWN_SIZE }; -#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) static void RecordCopiedObject(Heap* heap, HeapObject* obj) { bool should_record = false; #ifdef DEBUG should_record = FLAG_heap_stats; #endif -#ifdef ENABLE_LOGGING_AND_PROFILING should_record = should_record || FLAG_log_gc; -#endif if (should_record) { if (heap->new_space()->Contains(obj)) { heap->new_space()->RecordAllocation(obj); @@ -1352,7 +1335,6 @@ class ScavengingVisitor : public StaticVisitorBase { } } } -#endif // defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) // Helper function used by CopyObject to copy a source object to an // allocated target object and update the forwarding pointer in the source @@ -1368,12 +1350,9 @@ class ScavengingVisitor : public StaticVisitorBase { source->set_map_word(MapWord::FromForwardingAddress(target)); if (logging_and_profiling_mode == LOGGING_AND_PROFILING_ENABLED) { -#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) // Update NewSpace stats if necessary. RecordCopiedObject(heap, target); -#endif HEAP_PROFILE(heap, ObjectMoveEvent(source->address(), target->address())); -#if defined(ENABLE_LOGGING_AND_PROFILING) Isolate* isolate = heap->isolate(); if (isolate->logger()->is_logging() || CpuProfiler::is_profiling(isolate)) { @@ -1382,7 +1361,6 @@ class ScavengingVisitor : public StaticVisitorBase { source->address(), target->address())); } } -#endif } return target; @@ -1558,7 +1536,6 @@ static void InitializeScavengingVisitorsTables() { void Heap::SwitchScavengingVisitorsTableIfProfilingWasEnabled() { -#ifdef ENABLE_LOGGING_AND_PROFILING if (scavenging_visitors_table_mode_ == LOGGING_AND_PROFILING_ENABLED) { // Table was already updated by some isolate. return; @@ -1584,7 +1561,6 @@ void Heap::SwitchScavengingVisitorsTableIfProfilingWasEnabled() { Release_Store(&scavenging_visitors_table_mode_, LOGGING_AND_PROFILING_ENABLED); } -#endif } @@ -5213,28 +5189,6 @@ void Heap::Shrink() { } -#ifdef ENABLE_HEAP_PROTECTION - -void Heap::Protect() { - if (HasBeenSetup()) { - AllSpaces spaces; - for (Space* space = spaces.next(); space != NULL; space = spaces.next()) - space->Protect(); - } -} - - -void Heap::Unprotect() { - if (HasBeenSetup()) { - AllSpaces spaces; - for (Space* space = spaces.next(); space != NULL; space = spaces.next()) - space->Unprotect(); - } -} - -#endif - - void Heap::AddGCPrologueCallback(GCPrologueCallback callback, GCType gc_type) { ASSERT(callback != NULL); GCPrologueCallbackPair pair(callback, gc_type); @@ -5930,9 +5884,7 @@ GCTracer::~GCTracer() { PrintF("\n"); } -#if defined(ENABLE_LOGGING_AND_PROFILING) heap_->PrintShortHeapStatistics(); -#endif } |