Toplev

v8은 .js 파일 내에 존재하는 함수들을 바로 Parsing하지 않는다
입력된 .js 파일을 Toplev이라고 부르며 Toplevel의 Javascript들을 statement로 Parsing하고 파일에 존재하는 함수들은 Declarations들로 분류만 함
notion image
이 상태로 v8은 interpreting을 시작
  • interpreter는 find_me_a() 가장 먼저 처리, find_me_a 함수를 호출하기 위해
      1. find_me_a라는 이름의 함수가 있는지 검색
      1. 실행할 수 있는 상태인지 검사
      1. Parsing을 하고 동시에 Compile
 

이런 과정이 반복적으로 이뤄지는 것이 v8의 interpreting 과정이고, 거의 모든 interpreter들이 공통적으로 동작하는 방식

 
 
Nodejs 최적화 Tip?
최근에 Javascript의 function calling record 기능을 만들고 이를 Naver Pinpoint 와 연동하여 간단한 NodeJS용 APM을 만들었던 내용을 DEVIEW에서 발표했습니다. 이 기능을 통해 NodeJS에서 Compile되는 함수들을 출력해서 볼 수 있는데, 이를 통해 최근에 페북에서 본 'The V8 Engine and JavaScript Optimization Tips' 의 내용을 공부해보려고 합니다.
Nodejs 최적화 Tip?
 

Recommendations