serenity/Userland/Libraries/LibJS
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
..
Bytecode LibJS: Make Value::to_string_without_side_effects() infallible 2023-08-09 17:09:16 +02:00
Contrib/Test262 LibJS: Make PrimitiveString::deprecated_string() infallible 2023-08-09 17:09:16 +02:00
Heap LibJS: Improve garbage collection trigger condition 2023-08-09 18:32:19 +02:00
Runtime LibJS: Make Value::to_string_without_side_effects() infallible 2023-08-09 17:09:16 +02:00
Tests LibJS: Enable await test that used to crash in AST mode 2023-08-08 15:09:53 +02:00
AST.cpp LibJS: Make Value::to_string_without_side_effects() infallible 2023-08-09 17:09:16 +02:00
AST.h LibJS: Rip out the AST interpreter :^) 2023-08-08 13:07:13 +02:00
CMakeLists.txt LibJS: Rip out the AST interpreter :^) 2023-08-08 13:07:13 +02:00
Console.cpp LibJS: Make PrimitiveString::utf8_string() infallible 2023-08-09 17:09:16 +02:00
Console.h
CyclicModule.cpp
CyclicModule.h
Forward.h LibJS: Rip out the AST interpreter :^) 2023-08-08 13:07:13 +02:00
Lexer.cpp AK: Make "foo"_string infallible 2023-08-07 16:03:27 +02:00
Lexer.h
MarkupGenerator.cpp LibJS: Make Value::to_string_without_side_effects() infallible 2023-08-09 17:09:16 +02:00
MarkupGenerator.h
Module.cpp
Module.h
Parser.cpp LibJS: Apply the correct precedence for unary + and - operators 2023-08-08 07:41:07 +02:00
Parser.h
ParserError.cpp
ParserError.h
Print.cpp LibJS: Make Value::to_string_without_side_effects() infallible 2023-08-09 17:09:16 +02:00
Print.h
SafeFunction.h
Script.cpp
Script.h
SourceCode.cpp
SourceCode.h
SourceRange.h LibJS: Capture UnrealizedSourceRanges in ExecutionContext, not ASTNodes 2023-08-05 06:39:06 +02:00
SourceTextModule.cpp LibJS: Rip out the AST interpreter :^) 2023-08-08 13:07:13 +02:00
SourceTextModule.h
SyntaxHighlighter.cpp
SyntaxHighlighter.h
SyntheticModule.cpp LibJS: Make PrimitiveString::create() infallible 2023-08-09 17:09:16 +02:00
SyntheticModule.h
Token.cpp
Token.h