JIT vs. Interpreter
Kompilasi Just In Time (juga dikenal sebagai terjemahan dinamis atau JIT) adalah teknik yang digunakan dalam komputasi untuk meningkatkan kualitas kinerja runtime dari program komputer. Ini adalah penggabungan dua ide yang ditemukan di lingkungan runtime: Kompilasi bytecode dan kompilasi dinamis (yang merupakan proses yang digunakan beberapa implementasi bahasa pemrograman untuk mendapatkan kinerja saat sistem mengeksekusi tindakan).
Seorang juru bahasa paling akurat menggambarkan pelaksanaan suatu tindakan melalui program komputer. Ada beberapa variasi pada jenis tindakan yang benar-benar dieksekusi penerjemah: Secara langsung mengeksekusi kode sumber dari suatu program; itu menerjemahkan kode sumber menjadi representasi yang merupakan representasi perantara yang efisien, dan kemudian mengeksekusi kode tersebut; ia mengeksekusi kode yang sudah dikompilasi yang telah disimpan dan dibuat oleh kompiler yang merupakan bagian dari sistem interpreter.
JIT memiliki kemampuan untuk menggabungkan keunggulan yang ditemukan baik dalam interpretasi dan kompilasi statis (yaitu sebelumnya). Sebagai penerjemah, JIT mampu meningkatkan kinerja melalui caching hasil blok kode yang telah diterjemahkan - dibandingkan dengan hanya mengevaluasi kembali setiap baris atau operan dalam kode setiap kali itu terjadi (seperti dalam bahasa yang ditafsirkan). Sama seperti kode kompilasi statis pada saat pengembangan, JIT dapat mengkompilasi ulang kode jika ini ditemukan sebagai rencana tindakan yang paling menguntungkan. Juga, dalam nada yang sama dengan kompilasi statis, JIT mampu menegakkan jaminan keamanan.
Sama seperti kompiler, interpreter memiliki kapasitas untuk menerjemahkan kode. Keduanya adalah metode utama penerapan bahasa pemrograman; namun, kategori 'kompiler' atau 'juru bahasa' tidak berbeda (untuk peran rangkapnya sebagai penerjemah kode). Kerugian yang paling jelas untuk menggunakan juru bahasa adalah bahwa begitu kode ditafsirkan, program pasti akan berjalan lebih lambat daripada ketika hanya menyusun kode; Namun, dibutuhkan waktu lebih sedikit untuk menafsirkan pengkodean daripada mengkompilasi dan menjalankannya (terutama yang berkaitan ketika membuat prototipe dan menguji kode).
Secara umum, JIT memberikan kinerja yang jauh lebih baik daripada penerjemah, dan, dalam banyak kasus, memberikan kinerja yang jauh lebih baik daripada kompiler statis. Keunggulannya dibandingkan JIT, bagaimanapun, tidak menghalangi dari memiliki beberapa kelemahan utama: Ada sedikit keterlambatan ketika awalnya menjalankan aplikasi (efek samping dari mengambil waktu untuk memuat dan mengkompilasi bytecode). Pada akhirnya akan menghasilkan pengkodean yang lebih baik; Namun, penundaan awal yang melekat dalam melakukannya akan meningkat dengan kualitas pengkodean.
Ringkasan:
1. JIT adalah teknik yang digunakan untuk meningkatkan kualitas kinerja runtime di lingkungan runtime; seorang juru bahasa mendefinisikan pelaksanaan suatu tindakan melalui program komputer.
2. JIT menggabungkan keunggulan interpretasi dan kompilasi statis; seorang penerjemah dapat menerjemahkan kode seperti kompiler, tetapi merugikan kecepatan program.