본문 바로가기
javascript

[웹기본개념] 스크립트 언어, JIT 컴파일이란

by jinbro 2017. 5. 4.
[스크립트 언어란]
- 컴파일 언어의 경우 수정이 빈번하다면 매번 컴파일(실행전 기계어 코드로, 자바는 바이트코드 형태 중간언어로 변환 후 해석, 실행함 - JVM) 해야함
- 수정이 빈번한 때에는 실행할 때 코드를 한줄 한줄 읽어 대응하는 기계어 코드를 바로 실행하는 인터프리터 언어가 유리함
- 스크립트 언어는 위에서 언급한 단점을 극복하기위해 나온 언어임


[대표적인 스크립트 언어]
- javascript
- actionscript
- php
- ruby
- python


[스크립트 언어의 특징]
- 일반적으로 새로운 프로그램을 만들기보다 기존에 만들어진 프로그램에서 제어를 하기위해 사용됨
- 프로그램 내에서 스크립트 언어 구동을 위해 지원함
- 웹브라우저에서 구동이 지원되는 자바스크립트, 플래시를 제어하기위한 액션스크립트가 대표적
- 스크립트(인터프리터 방식) 언어가 컴파일 언어보다 느림(JIT 컴파일 방식을 도입하여 실행속도가 크게 개선된 경우도 있음 : 자바스크립트, 액션스크립트)
- 실행 되었을 때 에러를 발견....


[JIT 컴파일 방식이란]
- 컴파일 방식에 비해 한줄 한줄 읽고 실행시키는 인터프리터 방식이 속도가 느림, 속도면에서 단점을 보완하기위해 사용하는 방식
- 프로그램 내에서 반복 실행되는 부분에 대한 처리로 효율을 높이는 방식


[JIT 컴파일 방식 특징]
- JIT 컴파일러는 두가지를 혼합한 방식
- JIT 컴파일러는 실행시점기계어 코드를 생성하면서, 기계어 코드를 캐싱해두고 같은 함수가 여러번 불릴 때 캐싱해둔 기계어 코드를 실행하는 방식
- 기본적으로 처음에 인터프리터 방식을 사용하고, 자주 사용되는 코드가 발견(함수 호출 빈도를 측정)되면 그부분에 대해서 JITC를 적용


[JIT 컴파일 방식을 지원하는 환경]
- V8 엔진(nodejs)
- 자바 가상머신


[계속해서 알아보기]
- 어떤 자바스크립트 코드가 잘짜여진 코드인가
- 자바스크립트 코드를 어떻게하면 최적화할 수 있을 것인가


[참고자료]
1) 위키피디아, 스크립트언어 : https://goo.gl/7PPsyh
2) 나무위키, 스크립트언어 : https://goo.gl/7rtUqb
3) Toast Meetup!, 자바스크립트 엔진의 최적화기법 : http://meetup.toast.com/posts/77
4) 개인블로그, 자바스크립트 인터프리터, 컴파일 : http://blog.sejongin.kr/44
3) 위키피디아, 컴파일러 : https://goo.gl/dnW7f7

4) 위키피디아, JIT 컴파일러 : https://goo.gl/DedDKM



댓글