배움과 성장/시스템·성능
JIT 컴파일과 가상 머신: bytecode·ISA·profiling·deoptimization 구분
JIT 컴파일을 이해하려면 컴파일러, 가상 머신, bytecode, CPU instruction set을 한 덩어리로 묶지 않는 것이 먼저다. Java를 예로 들면 source code가 JVM bytecode로 바뀌는 단계와, 실행 중인 JVM이 그 bytecode를 해석하거나 native machine code로 바꾸는 단계는 서로 다르다.VM이라는 말부터 범위를 정한다가상 머신은 문맥에 따라 두 뜻으로 쓰인다.system VM: guest operating system까지 실행하는 가상 하드웨어 환경process 또는 language VM: 하나의 program을 위한 실행 환경. JVM 같은 runtime이 여기에 가깝다JIT를 설명할 때 말하는 VM은 대개 두 번째다. JVM specificat..