JIT Compilation

Back to Languages

Also known as dynamic translation, is compilation done during execution, at run time rather than prior to execution

Bytecode & Optimization

Bytecode is an intermediate representation of source code, for the purpose of portability across platforms

Optimizations:

  1. targeted CPU optimizations are possible for JIT compilers, while they are impractical for static compilers
  2. systems can optimize based on statics while running in the environment
  3. Inling replaces a function call site with the function body
  4. bytecode systems can more easily rearrange executed code for better cache use

Javascript JIT Compilation

Safari and Chrome do JIT compilation for JS, using bytecode

Late Binding in Dynamic Languages

Programming mechanism where method calls are looked up by name at runtime