V8: 3개의 글
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/GL0Y0/btq0MVkgdWc/h52Qs9Q0M6YrWih2kiM7O1/img.jpg)
참조문서 https://www.html5rocks.com/ko/tutorials/speed/v8/ https://github.com/v8/v8/wiki 자바스크립트 엔진은 javascript로 작성된 코드를 해석하고 실행하는 인터프리터다. js엔진은 브라우저 벤더별로 다양하다. Mozilla의 Monkey시리즈, 자바의 바이트코드로 컴파일해주는 Rhino, 구글 크롬의 V8, Safari의 JavascriptCore, Explorer의 Chakra 등이 있다. 여기서 nodejs는 구글의 V8 JavaScript 엔진을 기반으로 동작한다. 우리가 자주쓰는 크롬브라우저도 V8엔진을 쓴다. 성능좋은 코드를 위해 V8을 알아보자 1. Hidden Class로 빠른 프로퍼티 접근과 정적 룩업 다른 JavaScr..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/Nc7X5/btq0iWrvTaR/xDkM5dOvCecBbsURIbm11K/img.png)
참조문서 https://nodejs.org/ko/docs/guides/simple-profiling/ https://nodejs.org/api/debugger.html#debugger_v8_inspector_integration_for_node_js node에서 힙덤프 뜨기, CPU프로파일링 등을 하려면 몇가지 방법이 있지만, 이게 제일 쉽고 편한 것 같다. 1. 디버거 붙이기 node --inspect 소스명.js로 실행한다. 그러면 아래와 같이 나온다 chrome-devtools://devtools/remote/serve_file/@11cd6e111b9f111d1111f5bf532f6aec5f1111111/inspector.html?experiments=true&v8only=true&ws=127.0...
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/qCWUA/btq0qA05mM2/UrYfAYchrsNU05fOn4KV8k/img.png)
1. Nodejs 란? 2009년에 Ryan Dahl이 발표했다. 노드는 구글의 V8 JavaScript 엔진에 기반한다. 싱글스레드 기반 비동기 이벤트 위주 IO를 사용하는 고도의 확장성을 가진 시스템이다. 간단한 작업을 수행하지만 빈도가 높은 웹 어플리케이션에 이상적이다. 특징 싱글 쓰레드 : 문맥교환으로 인한 오버헤드X 비동기 IO : CPU time loss를 피함, io요청이 있으면 워커한테 던져놓고 쓰레드는 다른일을 계속 받는다. 이벤트 기반 : epool 또는 kqueue를 사용 경량 프레임워크 풍부한 라이브러리 : 각종 모듈 서버와 클라이언트에서 사용하는 언어(JS)가 같음 2. Nodejs 아키텍처 구글 이미지 검색에서 나오는 노드아키텍처들 중에 libev가 있는 건 옛날 사진이다. 노드..