javascript engine
-
JavaScript Engine Part 2카테고리 없음 2023. 3. 6. 23:03
Optimizing property access Object가 많아질 수록 property에 빠르게 접근하는 것이 중요해졌다. 같은 형태의 Object를 연결하는 Shape과 property를 추가할 때마다 변경되는 Shape을 관리하기 위한 chain, tree 개념, 또 Shape을 사용하는 주된 이유인 Inline Caches(ICs)에 대해 알아본다. 1. Shapes property에 빠르게 접근하기 위한 개념으로 객체간 동일한 key가 존재할 경우 Shape이 같다고 말한다.(V8에서는 Map이라 불린다.) const a = { x: 5, y: 6 }; const b = { x: 7, y: 8 }; // 객체 a와 b는 Shape이 같음 const c = { y: 9, x: 10 }; // 객..
-
V8 Memory Structure카테고리 없음 2023. 2. 22. 22:36
Contents V8 Memory Structure 개요 Heap Stack V8 메모리 사용(Stack, Heap) V8 메모리 관리: Garbage Collection(GC) Minor GC Major GC JavaScript는 단일 스레드이기 때문에 V8은 새로운 작업을 수행할 때마다 새 프로세스를 생성 및 실행한다. 실행중인 프로그램은 V8 프로세스에서 할당된 일정량의 메모리로 표현되고, 이를 Resident set이라 한다. Heap V8의 object 혹은 동적 데이터를 저장하는 곳으로 Resident set의 가장 큰 부분을 차지하고, GC(Garbage Collection)이 일어나는 곳이기도 하다. 전체 공간에서 가비지가 수집되지는 않고, Young, Old Space에서만 수집되어 관리..