From 13057812d5e4135c5f26ee2937ac4c9ad4ee3e86 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 9 Oct 2023 08:37:46 +0200 Subject: [PATCH] LibJS: Remove inline capacity from MarkedVector Turns out this was hurting performance instead of helping it. By removing the inline capacity, we shrink the size of ExecutionContext by 512 bytes, which substantially reduces the stack pressure created by JS recursion (each call creates a new ExecutionContext on the stack). 4.4% speed-up on the entire Kraken benchmark :^) --- Userland/Libraries/LibJS/Forward.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Forward.h b/Userland/Libraries/LibJS/Forward.h index 2b661aeb65..d2f1c53cd3 100644 --- a/Userland/Libraries/LibJS/Forward.h +++ b/Userland/Libraries/LibJS/Forward.h @@ -297,7 +297,7 @@ class ThrowCompletionOr; template class Handle; -template +template class MarkedVector; namespace Bytecode {