実行時コンパイラ
近年の主要なウェブブラウザはJavaScriptのエンジンにJITコンパイラを搭載し、高速処理できるようになっている。
Internet Explorer 9、Mozilla Firefox 3.5、Google Chrome 1、Safari 4、Opera 10.50、Opera Mobile 10.1以降のウェブブラウザに搭載されている。NetFront Browser 4.1 には搭載されていない。
実行時に変数に代入された値の統計データから変数に型を割り振ることでJITコンパイルし、高速にJavaScriptを処理できるようになった。Google ChromeのV8などでは、インタプリタを使わずに最初からJITコンパイルし、変数の型は実行時に随時割り振る。Firefox 3.5では事前に一度インタプリタで実行して、その情報から型を割り振りながらJITコンパイルするタイプがある。どちらのタイプであっても型が安定している場合は高速に実行できる。
上記のJITコンパイラの短所を補う一方式として適応的コンパイルがある。これは、起動当初はインタプリタとして実行し、繰り返し実行されるコードを検出(プロファイリング)、その部分のみをコンパイルするというものである。コードが使われた時にすぐにコンパイルするのではなく、何回か呼ばれた後に遅らせてコンパイルすることを遅延コンパイル (Lazy Compilation)と呼ぶ。
プログラム実行時間の大半はごく一部のコードに費やされるという経験則がある - 典型的に実行時間の80%は20%のコードに費やされる、80-20の法則。適応的コンパイルはこのようなコードのみをコンパイルすることで、起動時のオーバーヘッドや利用メモリ増大を抑えつつ、実行速度を向上することができる。この適応的最適化 (Adaptive Optimization) は、静的コンパイルでは得られない情報を元に最適化するため、むしろパフォーマンスが上がる場合もある。
数百件以内といった少量レコードを処理するバッチジョブが、一日に何百本、何千本も走る場合は注意が必要である。