浏览代码

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 :^)
Andreas Kling 1 年之前
父节点
当前提交
13057812d5
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      Userland/Libraries/LibJS/Forward.h

+ 1 - 1
Userland/Libraries/LibJS/Forward.h

@@ -297,7 +297,7 @@ class ThrowCompletionOr;
 template<class T>
 template<class T>
 class Handle;
 class Handle;
 
 
-template<class T, size_t inline_capacity = 32>
+template<class T, size_t inline_capacity = 0>
 class MarkedVector;
 class MarkedVector;
 
 
 namespace Bytecode {
 namespace Bytecode {