본문 바로가기

카테고리 없음

v8 turbolizer install & used

#Install 

 

env : Ubuntu 18.04

해보니까 16.04는 안됬다.

 

v8이 빌드 된 상태에서 v8 디렉토리 들어 간 후

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install npm
cd ~/v8/v8/tools/turbolizer
npm i
npm run-script build

이런식으로 빌드를 진행하면 된다.

잘 됬는지 확인하는방법은 마지막 라인에

created build/turbolizer.js in 6.5s

이거 비슷한게 있으면 성공 한거다. 

 

Use

구글링을 좀 해보니 turbolizer 는 Chrome 환경에서 진행하는게 더 좋다고 한다.

그래서 크롬 설치했다.

 

그리고 실행하는 방법은

python -m SimpleHTTPServer 8000

이런식으로 8000번 포트를 열도록 할 수 있다.

 

이런식으로 열은 후 웹 브라우저로 localhost:8000 으로 접속하게 되면 turbolizer 쓸수 있는 환경이 만들어진다.

 

처음 환경을 구성하고 이런식으로 들어오게되면 사진처럼 아무것도 없을 것이다. 옆에 설명서가 있긴한데 이걸로는 조금 부족한거같아서 설명을 조금 더 해보려고한다.

 

일단 이거를 사용할려면 --trace-turbo 를 실행하여 .json 파일을 생성해 줘야 한다.

function opt_me(x, y) {
	  return x + y;
}

console.log(opt_me(3,4))

%OptimizeFunctionOnNextCall(opt_me);

console.log(opt_me(1, 2))

 

이런식으로 test.js 파일을 만들어 준 후 

./d8 --allow-natives-syntax --trace-turbo test.js

이런식으로 커맨드를 하나 쓰게 되면

turbo-opt_me-0.json

이런식으로 파일이 하나 생성되게 된다.

 

그럼 이걸로 파일은 준비가 된거다.

 

다시 웹 브라우저로 넘어와서 Ctl + L 단축키를 눌러주면 이제 파일을 열수있는 창이 나온다.

이걸로 아까전에 생성된 .json 파일을 읽어주면 된다.

 

그럼 이런식으로 나오게 될꺼다.

뭔가 많이 부족해보이는데 이건 노드 뭐 이런거를 많이 가려놔서 그런거다.

 

이거를 보게할려면 위에 도구를 좀 사용해야된다.

위에 보면 이렇게 도구를 쓸수 있는데 2번쨰꺼를 클릭하게되면 노드들이 보인다.

근데 딱 보기에도 너무 개판이다. 이거를 좀 정리해주는게 첫번째 도구이다.

이거를 한번 클릭해주면

깔끔하게 정리가 된다.

 

근데 이번에는 또 크기가 너무 작다.

그래서 이번에는 돋보기를 써야한다.

 

Shift 키를 누른후 저런식으로 틀 3개를 잡은 후 돋보기 같이 생긴 도구 클릭해주면

됬다. 확대가 되었다.

 

그럼 이제 이거를 좀 분석을 해보자.

 

일단 색깔이다.

그래프를 보게되면 이제 색깔이 엄청 다양한데 이게 색깔마다 뜻하는게 다 다르다.

 

노란색 : 이 노드는 제어 노드를 나타낸다. 시작 또는 종료 지점, 반환, "if"문 등과 같은 스크립트의 흐름을 변경하거나 설명하는 모든거다 . 

 

하늘색 : 특정 노드가 가질 수 있거나 반환 할 수있는 값을 나타내는 노드이다. 함수가 항상 "42"를 반환한다고 가정하면 최적화 단계에 따라 그래프에서는 이를 상수 또는 범위 (42, 42)로 볼 수 있다.

 

진한 파란색 : 중간 언어 작업을 나타낸다 (바이트 코드 명령어를 생각해보세요). 피드백이 Turbofan으로 소비되는 위치를 아는 데 도움이된다.

 

빨간색 : JavaScript 수준에서 실행되는 기본 JavaScript 코드 또는 작업이다. 예를 들어 JSEqual, JSToBoolean 등 이다.

 

녹색 : 컴퓨터 수준 언어. 낮은 수준에있는 모든 것이다.

 

turbofan 은 여러가지에 최적화 과정을 지난다고 알고 있을 것이다.

이제 turbolizer 로 이거를 또 확인 할 수 있는데,

이거다. 이거를 보게되면 약 20단계로 구성 되어있는거를 알 수 있다.

이거로 하나하나 클릭하면서 볼 수 있다.

 

일단 여기까지 내가 알고있는 turbolizer 에 대해서 설명해 봤는데 이제 이게 하나하나 무엇을 뜻하는지 좀 알아봐야되겠다.

 

추가 :

찾아보니까 이렇게 할 필요가 굳이 없었을거같기도하다.

v8.github.io/tools/head/turbolizer/index.html

 

V8 Turbolizer

 

v8.github.io

여기 사이트에서 turbolizer를 지원한다.

 

json 파일 뽑아서 여기서 돌리면 깔끔하게 보여준다