JIT가 어떻게 네이티브랑 속도 차이가 안남ㅋ 실행 도중에 컴파일이 되는 건데.
계속 캐싱하잖아
캐싱한다고 속도 차이가 안나냐? 캐싱에 필요한 바이너리 생성 시간은 뭐 거저냐 최소한 초기 구동은 차이나게 느릴거 아님
서버 어플리케이션 등 런타임이 아주 긴 경우야 무시할수 있을지몰라도 1회성으로 실행되는 어플리케이션에서는 퍼포먼스적으로는 손해임
다르지 LLVM은 애초에 기계어로 최종 컴파일돼서 돌아가고 VM + JIT은 실행 안 한 코드 컴파일해가면서 돌리니까 GC마냥 굼뜨는 때가 있음 이땐 오히려 JIT 없는 것보다 못 함
VM이랑 JIT/AOT가 연관이 있을까?
VM은 기본적으로 GC때문에 Stop the world가 발생하잖음. 물론 요즘에는 동시적으로 Mark and sweep해준다지만 네이티브랑 비교할 정도는...
LLVM은 그냥 컴파일 바로 됨, 중간에 IR써서 VM이라 붙여놓은건데 - dc App
LLVM IR을 인터프리팅해야 JVM같은게 되는거지 최종 결과물은 네이티브 머신코드인데 어케 같음? JIT도 바로 컴파일하는게 아니라 핫 코드만 하는건데
비교가 이상해
JIT가 어떻게 네이티브랑 속도 차이가 안남ㅋ 실행 도중에 컴파일이 되는 건데.
계속 캐싱하잖아
캐싱한다고 속도 차이가 안나냐? 캐싱에 필요한 바이너리 생성 시간은 뭐 거저냐 최소한 초기 구동은 차이나게 느릴거 아님
서버 어플리케이션 등 런타임이 아주 긴 경우야 무시할수 있을지몰라도 1회성으로 실행되는 어플리케이션에서는 퍼포먼스적으로는 손해임
다르지 LLVM은 애초에 기계어로 최종 컴파일돼서 돌아가고 VM + JIT은 실행 안 한 코드 컴파일해가면서 돌리니까 GC마냥 굼뜨는 때가 있음 이땐 오히려 JIT 없는 것보다 못 함
VM이랑 JIT/AOT가 연관이 있을까?
VM은 기본적으로 GC때문에 Stop the world가 발생하잖음. 물론 요즘에는 동시적으로 Mark and sweep해준다지만 네이티브랑 비교할 정도는...
LLVM은 그냥 컴파일 바로 됨, 중간에 IR써서 VM이라 붙여놓은건데 - dc App
LLVM IR을 인터프리팅해야 JVM같은게 되는거지 최종 결과물은 네이티브 머신코드인데 어케 같음? JIT도 바로 컴파일하는게 아니라 핫 코드만 하는건데
비교가 이상해