Ho svolto ricerche su Interpreti / Compilatori, poi mi sono imbattuto in JIT-Compilation, in particolare nel motore JavaScript V8 di Google Chrome.
Le mie domande sono -
- Come può essere più veloce rispetto all'interpretazione standard?
- Perché la compilazione JIT non è stata utilizzata in primo luogo?
La mia comprensione corrente
-
Ogni programma Javascript inizia come codice sorgente , quindi, indipendentemente dal metodo di esecuzione, viene tradotto in codice macchina .
Sia Compilazione JIT che Interpretazione devono seguire questo percorso, quindi come può JIT-Compilation essere più veloce (anche perché JIT è vincolato nel tempo, a differenza AOT-Compilation)? -
Sembra che la compilazione JIT sia un'innovazione relativamente vecchia , basata su Wikipedia Articolo di compilazione JIT .
"The earliest published JIT compiler is generally attributed to work on LISP by McCarthy in 1960."
"Smalltalk (c. 1983) pioneered new aspects of JIT compilations. For example, translation to machine code was done on demand, and the result was cached for later use. When memory became scarce, the system would delete some of this code and regenerate it when it was needed again."
Quindi perché JavaScript interpretato inizia con ?
Sono molto confuso e ho fatto molte ricerche al riguardo, ma non ho trovato risposte soddisfacenti.
Sarebbe gradita una risposta chiara e concisa. E se è necessario aggiungere ulteriori spiegazioni su Interpreti, compilatori JIT, ecc., Ciò è molto apprezzato.