Changeset 181310 in webkit
- Timestamp:
- Mar 9, 2015 10:32:49 PM (9 years ago)
- Location:
- trunk/Source
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r181309 r181310 1 2015-03-09 Chris Dumez <cdumez@apple.com> 2 3 [iOS] Sweep all collected objects on critical memory pressure 4 https://bugs.webkit.org/show_bug.cgi?id=142457 5 <rdar://problem/20044440> 6 7 Reviewed by Geoffrey Garen. 8 9 All fullSweep() API to IncrementalSweeper so that we can call it in the 10 memory pressure handler. 11 12 * heap/IncrementalSweeper.cpp: 13 (JSC::IncrementalSweeper::fullSweep): 14 * heap/IncrementalSweeper.h: 15 (JSC::IncrementalSweeper::hasWork): 16 1 17 2015-03-09 Mark Lam <mark.lam@apple.com> 2 18 -
trunk/Source/JavaScriptCore/heap/IncrementalSweeper.cpp
r179728 r181310 59 59 { 60 60 CFRunLoopTimerSetNextFireDate(m_timer.get(), CFAbsoluteTimeGetCurrent() + s_decade); 61 } 62 63 void IncrementalSweeper::fullSweep() 64 { 65 while (hasWork()) 66 doWork(); 61 67 } 62 68 -
trunk/Source/JavaScriptCore/heap/IncrementalSweeper.h
r176533 r181310 39 39 #if USE(CF) 40 40 JS_EXPORT_PRIVATE IncrementalSweeper(Heap*, CFRunLoopRef); 41 JS_EXPORT_PRIVATE void fullSweep(); 41 42 #else 42 43 explicit IncrementalSweeper(VM*); … … 53 54 void scheduleTimer(); 54 55 void cancelTimer(); 56 bool hasWork() const { return !m_blocksToSweep.isEmpty(); } 55 57 56 58 unsigned m_currentBlockToSweepIndex; -
trunk/Source/WebCore/ChangeLog
r181302 r181310 1 2015-03-09 Chris Dumez <cdumez@apple.com> 2 3 [iOS] Sweep all collected objects on critical memory pressure 4 https://bugs.webkit.org/show_bug.cgi?id=142457 5 <rdar://problem/20044440> 6 7 Reviewed by Geoffrey Garen. 8 9 Do a full sweep of objects marked for destruction on critical memory 10 pressure to free up memory. 11 12 * platform/cocoa/MemoryPressureHandlerCocoa.mm: 13 (WebCore::MemoryPressureHandler::platformReleaseMemory): 14 1 15 2015-03-09 Andy Estes <aestes@apple.com> 2 16 -
trunk/Source/WebCore/platform/cocoa/MemoryPressureHandlerCocoa.mm
r181215 r181310 30 30 #import "IOSurfacePool.h" 31 31 #import "GCController.h" 32 #import "JSDOMWindow.h" 32 33 #import "JSDOMWindowBase.h" 33 34 #import "LayerPool.h" 34 35 #import "Logging.h" 35 36 #import "WebCoreSystemInterface.h" 37 #import <JavaScriptCore/IncrementalSweeper.h> 36 38 #import <mach/mach.h> 37 39 #import <mach/task_info.h> … … 88 90 ReliefLogger log("Collecting JavaScript garbage"); 89 91 gcController().garbageCollectNow(); 92 } 93 94 // Do a full sweep of collected objects. 95 { 96 ReliefLogger log("Full JavaScript garbage sweep"); 97 JSC::JSLockHolder lock(JSDOMWindow::commonVM()); 98 JSDOMWindow::commonVM().heap.sweeper()->fullSweep(); 90 99 } 91 100 #endif
Note: See TracChangeset
for help on using the changeset viewer.