Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index b3b24930e2d4329da1431ee842d0237be151705d..ac84dd284b4453c69432eb476c552302003036bd 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -4404,6 +4404,11 @@ void Heap::CollectGarbageOnMemoryPressure(const char* source) { |
if (potential_garbage >= kGarbageThresholdInBytes && |
potential_garbage >= |
CommittedMemory() * kGarbageThresholdAsFractionOfTotalMemory) { |
+ if (isolate()->concurrent_recompilation_enabled()) { |
Hannes Payer (out of office)
2016/07/13 14:53:41
Why is the flushing guarded by the potential garba
|
+ // The optimizing compiler may be unnecessarily holding on to memory. |
+ DisallowHeapAllocation no_recursive_gc; |
+ isolate()->optimizing_compile_dispatcher()->Flush(); |
+ } |
// If we spent less than half of the time budget, then perform full GC |
// Otherwise, start incremental marking. |
if (end - start < kMaxMemoryPressurePauseMs / 2) { |