Atšķirība starp JIT un tulku

JIT pret tulku

Kompilācija Just In Time (pazīstama arī kā dinamiskais tulkojums vai JIT) ir skaitļošanā izmantota tehnika, lai uzlabotu datorprogrammas izpildlaika veiktspējas kvalitāti. Tas ir divu ideju apvienojums, kas atrodamas izpildlaika vidēs: baitu kodu kompilācija un dinamiskā kompilācija (tas ir process, kuru dažas programmēšanas valodas ieviešanas izmanto, lai iegūtu veiktspēju, kamēr sistēma izpilda darbību).

Tulks visprecīzāk apraksta darbības izpildīšanu, izmantojot datorprogrammu. Ir dažas variācijas par darbību veidu, ko tulks faktiski veic: Tas tieši izpilda programmas avota kodu; tas pārveido avota kodu reprezentācijā, kas ir efektīvs starpposma attēlojums, un pēc tam izpilda minēto kodu; tas izpilda iepriekš sastādītu kodu, kuru ir saglabājis un izveidojis kompilators, kas ir daļa no tulka sistēmas.

JIT ir spēja apvienot priekšrocības, kas atklājas gan interpretācijā, gan statiskajā (tas ir, pirms termiņa) kompilācijā. Kā tulks JIT var uzlabot veiktspēju, izmantojot iztulkoto koda bloku rezultātus kešatmiņā, salīdzinot ar katras koda rindas vai operandu atkārtotu novērtēšanu katru reizi, kad tā parādās (tāpat kā interpretētajā valodā). Tāpat kā statiskā koda sastādīšana izstrādes laikā, arī JIT spēj pārkompilēt kodu, ja tas tiek atzīts par visizdevīgāko rīcības plānu. Tāpat kā statiskā kompilācija, JIT ir spējīgs ieviest drošības garantijas.

Tieši tāpat kā kompilatori, arī tulki spēj tulkot kodu. Abas ir galvenās programmēšanas valodu ieviešanas metodes; tomēr “sastādītāja” vai “tulka” kategorijas nav atšķirīgas (attiecībā uz to dubulto lomu kā koda tulkotājiem). Acīmredzamākais tulka izmantošanas trūkums ir tas, ka pēc koda interpretācijas programma neizbēgami darbosies lēnāk nekā vienkārši sastādot kodu; tomēr kodēšanas interpretācija prasa daudz mazāk laika nekā tās apkopošana un palaišana (īpaši būtiska koda prototipēšanā un testēšanā).

Kopumā JIT nodrošina daudz labāku sniegumu nekā tulki, un daudzos gadījumos nodrošina daudz labāku sniegumu nekā statiskie kompilatori. Tā pārākums salīdzinājumā ar JIT tomēr neliedz tai radīt dažus būtiskus trūkumus: Sākotnēji izpildot lietojumprogrammu, ir neliela kavēšanās (blakusparādība, kas saistīta ar laika pavadīšanu, lai ielādētu un sastādītu baitskodu). Tas galu galā ģenerēs labāku kodēšanu; tomēr sākotnējā kavēšanās, kas tai raksturīga, palielināsies līdz ar kodēšanas kvalitāti.

Kopsavilkums:

1. JIT ir paņēmiens, ko izmanto, lai uzlabotu izpildlaika veiktspējas kvalitāti izpildlaika vidē; tulks definē darbības izpildi, izmantojot datorprogrammu.

2. JIT apvieno interpretācijas un statiskās kompilācijas priekšrocības; tulks var tulkot kodu tāpat kā kompilators, bet kaitējot programmas ātrumam.