mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
3ef8be4fa4
Jemalloc 4 purges dirty pages regularly during free() when the ratio of dirty pages compared to active pages is higher than 1 << lg_dirty_mult. We set lg_dirty_mult in jemalloc_config to limit RSS usage, but it also has an impact on performance. So instead of enforcing a high ratio to force more pages being purged, we keep jemalloc's default ratio of 8, and force a regular purge of all dirty pages, after cycle collection. Keeping jemalloc's default ratio avoids cycle-collection-triggered purge to have to go through really all dirty pages when there are a lot, in which case the normal jemalloc purge during free() will already have kicked in. It also takes care of everything that doesn't run the cycle collector still having a level of purge, like plugins in the plugin-container. At the same time, since jemalloc_purge_freed_pages does nothing with jemalloc 4, repurpose the MEMORY_FREE_PURGED_PAGES_MS telemetry probe to track the time spent in this cycle-collector-triggered purge. |
||
---|---|---|
.. | ||
test | ||
ChromeWorkerScope.cpp | ||
ChromeWorkerScope.h | ||
DataStore.cpp | ||
DataStore.h | ||
DataStoreCursor.cpp | ||
DataStoreCursor.h | ||
FileReaderSync.cpp | ||
FileReaderSync.h | ||
Location.cpp | ||
Location.h | ||
moz.build | ||
Navigator.cpp | ||
Navigator.h | ||
nsIWorkerDebugger.idl | ||
nsIWorkerDebuggerManager.idl | ||
Performance.cpp | ||
Performance.h | ||
Principal.cpp | ||
Principal.h | ||
PServiceWorkerManager.ipdl | ||
Queue.h | ||
RegisterBindings.cpp | ||
RuntimeService.cpp | ||
RuntimeService.h | ||
ScriptLoader.cpp | ||
ScriptLoader.h | ||
ServiceWorker.cpp | ||
ServiceWorker.h | ||
ServiceWorkerClient.cpp | ||
ServiceWorkerClient.h | ||
ServiceWorkerClients.cpp | ||
ServiceWorkerClients.h | ||
ServiceWorkerCommon.h | ||
ServiceWorkerContainer.cpp | ||
ServiceWorkerContainer.h | ||
ServiceWorkerEvents.cpp | ||
ServiceWorkerEvents.h | ||
ServiceWorkerManager.cpp | ||
ServiceWorkerManager.h | ||
ServiceWorkerManagerChild.cpp | ||
ServiceWorkerManagerChild.h | ||
ServiceWorkerManagerParent.cpp | ||
ServiceWorkerManagerParent.h | ||
ServiceWorkerManagerService.cpp | ||
ServiceWorkerManagerService.h | ||
ServiceWorkerPeriodicUpdater.cpp | ||
ServiceWorkerPeriodicUpdater.h | ||
ServiceWorkerRegistrar.cpp | ||
ServiceWorkerRegistrar.h | ||
ServiceWorkerRegistrarTypes.ipdlh | ||
ServiceWorkerRegistration.cpp | ||
ServiceWorkerRegistration.h | ||
ServiceWorkerScriptCache.cpp | ||
ServiceWorkerScriptCache.h | ||
ServiceWorkerWindowClient.cpp | ||
ServiceWorkerWindowClient.h | ||
SharedWorker.cpp | ||
SharedWorker.h | ||
URL.cpp | ||
URL.h | ||
WorkerDebuggerManager.cpp | ||
WorkerDebuggerManager.h | ||
WorkerFeature.h | ||
WorkerInlines.h | ||
WorkerPrivate.cpp | ||
WorkerPrivate.h | ||
WorkerRunnable.cpp | ||
WorkerRunnable.h | ||
Workers.h | ||
WorkerScope.cpp | ||
WorkerScope.h | ||
WorkerThread.cpp | ||
WorkerThread.h | ||
XMLHttpRequest.cpp | ||
XMLHttpRequest.h | ||
XMLHttpRequestUpload.cpp | ||
XMLHttpRequestUpload.h |