1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 11:35:07 +00:00
serenity/Userland/Libraries/LibJS/Heap
flofriday a2abc5b824 LibJS: Improve garbage collection trigger condition
This patch triggers the collector when allocated memory doubles instead
of every 100k allocations. Which can almost half (reduce by ~48%) the
time spent on collection when loading google-maps.

This dynamic approach is inspired by some other GCs like Golang's and
Lua's and improves performance in memory heavy applications because
marking must visit old objects which will dominate the marking phase if
the GC is invoked too often.

This commit also improves the Octane Splay benchmark and almost
doubles it :^)
2023-08-09 18:32:19 +02:00
..
BlockAllocator.cpp Everywhere: Replace uses of __serenity__ with AK_OS_SERENITY 2022-10-10 12:23:12 +02:00
BlockAllocator.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
Cell.cpp LibJS: Make Cell::initialize() return void 2023-08-08 07:39:11 +02:00
Cell.h LibJS: Make Cell::initialize() return void 2023-08-08 07:39:11 +02:00
CellAllocator.cpp LibJS: Use default instead of an empty constructor/destructor 2021-09-16 17:17:13 +02:00
CellAllocator.h Userland: Remove a bunch of unnecessary Vector imports 2022-01-28 23:40:25 +01:00
DeferGC.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
GCPtr.h LibJS+LibWeb: Mark NonnullGCPtr::ptr() as returns_nonnull 2023-08-07 22:20:03 -04:00
Handle.cpp LibJS: Make Handle<T> more user-friendly 2022-09-03 00:36:26 +02:00
Handle.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
Heap.cpp LibJS: Improve garbage collection trigger condition 2023-08-09 18:32:19 +02:00
Heap.h LibJS: Improve garbage collection trigger condition 2023-08-09 18:32:19 +02:00
HeapBlock.cpp LibJS: Resolve a circular include problem between HeapBlock and Cell 2023-07-11 09:38:37 +03:30
HeapBlock.h LibJS: Resolve a circular include problem between HeapBlock and Cell 2023-07-11 09:38:37 +03:30
Internals.h LibJS: Resolve a circular include problem between HeapBlock and Cell 2023-07-11 09:38:37 +03:30
MarkedVector.cpp LibJS: Let MarkedVector<T> inherit from Vector and handle Cell* + Value 2022-02-09 12:25:27 +00:00
MarkedVector.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00