Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: third_party/WebKit/Source/platform/heap/HeapCompact.cpp

Issue 2769113003: Allow safe per-thread heap compaction UMA reporting. (Closed)
Patch Set: update initializers Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "platform/heap/HeapCompact.h" 5 #include "platform/heap/HeapCompact.h"
6 6
7 #include "platform/Histogram.h" 7 #include "platform/Histogram.h"
8 #include "platform/RuntimeEnabledFeatures.h" 8 #include "platform/RuntimeEnabledFeatures.h"
9 #include "platform/heap/Heap.h" 9 #include "platform/heap/Heap.h"
10 #include "platform/heap/SparseHeapBitmap.h" 10 #include "platform/heap/SparseHeapBitmap.h"
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 return; 421 return;
422 422
423 #if DEBUG_HEAP_COMPACTION 423 #if DEBUG_HEAP_COMPACTION
424 if (m_fixups) 424 if (m_fixups)
425 m_fixups->dumpDebugStats(); 425 m_fixups->dumpDebugStats();
426 #endif 426 #endif
427 m_fixups.reset(); 427 m_fixups.reset();
428 m_doCompact = false; 428 m_doCompact = false;
429 429
430 double timeForHeapCompaction = WTF::currentTimeMS() - m_startCompactionTimeMS; 430 double timeForHeapCompaction = WTF::currentTimeMS() - m_startCompactionTimeMS;
431 DEFINE_STATIC_LOCAL(CustomCountHistogram, timeForHeapCompactionHistogram, 431 DEFINE_THREAD_SAFE_STATIC_LOCAL(
432 ("BlinkGC.TimeForHeapCompaction", 1, 10 * 1000, 50)); 432 CustomCountHistogram, timeForHeapCompactionHistogram,
433 new CustomCountHistogram("BlinkGC.TimeForHeapCompaction", 1, 10 * 1000,
434 50));
433 timeForHeapCompactionHistogram.count(timeForHeapCompaction); 435 timeForHeapCompactionHistogram.count(timeForHeapCompaction);
434 m_startCompactionTimeMS = 0; 436 m_startCompactionTimeMS = 0;
435 437
436 DEFINE_STATIC_LOCAL( 438 DEFINE_THREAD_SAFE_STATIC_LOCAL(
437 CustomCountHistogram, objectSizeFreedByHeapCompaction, 439 CustomCountHistogram, objectSizeFreedByHeapCompaction,
438 ("BlinkGC.ObjectSizeFreedByHeapCompaction", 1, 4 * 1024 * 1024, 50)); 440 new CustomCountHistogram("BlinkGC.ObjectSizeFreedByHeapCompaction", 1,
441 4 * 1024 * 1024, 50));
439 objectSizeFreedByHeapCompaction.count(m_freedSize / 1024); 442 objectSizeFreedByHeapCompaction.count(m_freedSize / 1024);
440 443
441 #if DEBUG_LOG_HEAP_COMPACTION_RUNNING_TIME 444 #if DEBUG_LOG_HEAP_COMPACTION_RUNNING_TIME
442 LOG_HEAP_COMPACTION_INTERNAL( 445 LOG_HEAP_COMPACTION_INTERNAL(
443 "Compaction stats: time=%gms, pages freed=%zu, size=%zu\n", 446 "Compaction stats: time=%gms, pages freed=%zu, size=%zu\n",
444 timeForHeapCompaction, m_freedPages, m_freedSize); 447 timeForHeapCompaction, m_freedPages, m_freedSize);
445 #else 448 #else
446 LOG_HEAP_COMPACTION("Compaction stats: freed pages=%zu size=%zu\n", 449 LOG_HEAP_COMPACTION("Compaction stats: freed pages=%zu size=%zu\n",
447 m_freedPages, m_freedSize); 450 m_freedPages, m_freedSize);
448 #endif 451 #endif
449 } 452 }
450 453
451 void HeapCompact::addCompactingPage(BasePage* page) { 454 void HeapCompact::addCompactingPage(BasePage* page) {
452 DCHECK(m_doCompact); 455 DCHECK(m_doCompact);
453 DCHECK(isCompactingArena(page->arena()->arenaIndex())); 456 DCHECK(isCompactingArena(page->arena()->arenaIndex()));
454 fixups().addCompactingPage(page); 457 fixups().addCompactingPage(page);
455 } 458 }
456 459
457 bool HeapCompact::scheduleCompactionGCForTesting(bool value) { 460 bool HeapCompact::scheduleCompactionGCForTesting(bool value) {
458 bool current = s_forceCompactionGC; 461 bool current = s_forceCompactionGC;
459 s_forceCompactionGC = value; 462 s_forceCompactionGC = value;
460 return current; 463 return current;
461 } 464 }
462 465
463 } // namespace blink 466 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698