ladybird/Libraries/LibGC
Andreas Kling 895def2bd5 LibGC: Add detailed per-phase timing breakdown to GC report
The per-collection report now includes microsecond timings (with
percentage of total) for each phase and major subphase:

  gather_roots
    must-survive scan / embedder roots / explicit roots
    conservative roots
      register scan / stack scan / conservative-vector / cell lookup
  mark_live_cells
    initial visit / BFS marking / clear uprooted
  finalize_unmarked_cells
  sweep_weak_blocks
  sweep_dead_cells
    block iteration / weak containers / sweep callbacks
    block reclassify / update threshold

Timings are recorded via a small RAII helper into a file-scope struct,
keeping all the plumbing inside Heap.cpp so the public Heap.h surface
stays untouched. Sweep stats now travel back to collect_garbage() the
same way, which lets the report move out of sweep_dead_cells() into a
single print_gc_report() helper run after every phase has completed.
2026-05-10 10:58:11 +02:00
..
BlockAllocator.cpp LibGC: Use mmap for HeapBlock chunks 2026-05-10 10:58:11 +02:00
BlockAllocator.h LibThreading/LibSync: Split out sync primitives 2026-05-08 18:58:35 -05:00
Cell.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Cell.h LibJS: Add JS_OBJECT_WITH_CUSTOM_CLASS_NAME 2026-05-09 14:36:18 +02:00
CellAllocator.cpp LibGC: Prefer Optional<StringView> for CellAllocator class name 2026-02-21 12:37:44 +01:00
CellAllocator.h LibGC: Remove size-based allocator support 2026-05-09 15:07:24 +02:00
CMakeLists.txt LibThreading/LibSync: Split out sync primitives 2026-05-08 18:58:35 -05:00
ConservativeVector.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ConservativeVector.h LibGC: Remove unused header in ConservativeVector 2026-02-23 12:15:23 +01:00
DeferGC.h Everywhere: Abandon Swift adoption 2026-02-17 10:48:09 -05:00
Forward.h LibGC: Add missing HeapVector forward declaration 2026-02-23 18:44:26 +00:00
Function.h LibGC: Take GC::Function's AK::Function as rvalue reference 2026-02-18 13:13:32 -06:00
Heap.cpp LibGC: Add detailed per-phase timing breakdown to GC report 2026-05-10 10:58:11 +02:00
Heap.h LibGC: Remove size-based allocator support 2026-05-09 15:07:24 +02:00
HeapBlock.cpp LibGC: Remove unused header in HeapBlock 2026-02-23 12:15:23 +01:00
HeapBlock.h LibGC: Remove unused cell name parameter from HeapBlock 2026-02-21 12:37:44 +01:00
HeapHashTable.h Libraries: Move #pragma once above include headers 2026-03-22 14:05:44 +01:00
HeapRoot.h LibGC+Meta: Look up and display stack frames for StackPointer roots 2026-03-01 21:50:51 +01:00
HeapVector.h LibGC: Include CellAllocator.h in HeapVector.h 2026-02-17 07:40:03 -05:00
Internals.h LibGC: Always use 16 KiB as HeapBlock size 2025-12-19 20:21:07 -06:00
NanBoxedValue.h LibGC: Enable EXPLICIT_SYMBOL_EXPORT 2025-06-30 10:50:36 -06:00
Ptr.h LibGC: Delete operators ! and bool from GC::Ref 2025-10-29 21:20:10 +01:00
Root.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Root.h LibGC: Remove unused header in Root 2026-02-23 12:15:23 +01:00
RootHashMap.cpp LibGC: Add GC::RootHashMap<...> template container 2025-05-03 17:33:54 +02:00
RootHashMap.h LibGC: Add static_assert for non-GC types in root containers 2026-05-07 13:00:52 +02:00
RootVector.cpp LibGC: Allow move-assigning RootVector instances 2025-04-19 02:03:43 +02:00
RootVector.h LibGC: Add static_assert for non-GC types in root containers 2026-05-07 13:00:52 +02:00
Weak.h LibGC+LibWeb: Add and use GC::weak_callback() 2026-02-26 08:03:50 -05:00
WeakBlock.cpp LibGC: Add GC::Weak<T> as an alternative to AK::WeakPtr<T> 2025-10-17 17:22:16 +02:00
WeakBlock.h LibGC: Add GC::Weak<T> as an alternative to AK::WeakPtr<T> 2025-10-17 17:22:16 +02:00
WeakContainer.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakContainer.h LibGC: Enable EXPLICIT_SYMBOL_EXPORT 2025-06-30 10:50:36 -06:00
WeakHashSet.h LibGC: Amortize pruning of dead entries in WeakHashSet 2026-03-08 20:49:28 +01:00
WeakInlines.h LibGC: Add missing & in Weak assignment 2026-03-14 21:35:06 -05:00