www.wikidata.uk-ua.nina.az
Just in time compilation JIT takozh vidoma yak dynamic translation abo run time compilation 1 kompilyaciya na lotu ce tehnologiya zbilshennya produktivnosti programnih sistem sho vikonuyut programnij kod shlyahom translyaciyi bajt kodu v mashinnij kod bezposeredno pid chas roboti programi U takij sposib dosyagayetsya visoka shvidkist vikonannya za rahunok zbilshennya spozhivannya pam yati dlya zberigannya rezultativ kompilyaciyi i vitrat chasu na kompilyaciyu JIT kompilyaciya ye kombinaciyeyu dvoh osnovnih metodiv translyaciyi v mashinnij kod interpretaciyi ta statichnoyi kompilyaciyi ta nasliduye yakosti oboh pidhodiv perevagi shvidkosti skompilovanogo kodu ta gnuchkosti interpretatora poyednani z nakladnimi vitratami interpretaciyi ta kompilyaciyi kodu JIT kompilyaciya ye pidvidom dinamichnoyi kompilyaciyi sho dozvolyaye vikoristannya tehnik adaptivnoyi optimizaciyi takih yak dinamichna rekompilyaciya vikoristannya interpretatorom mikroarhitekturnih optimizacij 2 JIT kompilyaciya pidhodit dlya dinamichnih mov programuvannya oskilki sistemi kompilyaciyi realnogo chasu mozhut skonstruyuvati pizno zv yazuvanni tipi danih ta garantuvati bezpeku Zmist 1 Zastosuvannya 2 Istoriya rozvitku JIT kompilyaciyi yiyi osnovnih pidhodiv 3 Pitannya bezpeki 4 Div takozh 5 Primitki 6 DzherelaZastosuvannya RedaguvatiCej rozdil ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cej rozdil dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno zhovten 2020 JIT kompilyaciya mozhe buti vikoristana u okremih programah abo dlya realizaciyi pevnogo dinamichnogo funkcionalu takogo yak regulyarni virazi Dlya prikladu redaktor mozhe skompilyuvati regulyarnij viraz yakij buv vvedenij pid chas roboti programi u shvidkij mashinnij kod cyu kompilyaciyu nemozhlivo provesti zavchasno oskilki shablon regulyarnogo virazu vvoditsya pid chas vikonannya Deyaki suchasni seredovisha vikonannya pokladayutsya na JIT kompilyaciyu dlya pidvishennya shvidkosti roboti kodu Prikladami takih seredovish ye bilshist implementacij Java ta NET Framework Shozhim chinom bagato bibliotek vikoristovuyut JIT kompilyaciyu dlya translyaciyi regulyarnih viraziv u neobhidnij bajt abo mashinnij kod JIT kompilyaciya takozh vikoristovuyetsya v deyakih emulyatorah z metoyu translyaciyi mashinnogo kodu procesoriv odniyeyi arhitekturi do mashinnogo kodu procesora inshoyi arhitekturi Zvichnij JIT kompilyator vikonuye statichnu kompilyaciyu pered vikonannyam otrimuyuchi bajtkod kod virtualnoyi mashini vidomij takozh yak bajtkod kompilyaciya a pislya vikonuye kompilyaciyu v mashinnij kod dinamichna kompilyaciya abo JIT kompilyaciya zamist prostogo procesu interpretaciyi bajtkodu v mashinnij kod Ce dozvolyaye pokrashiti shvidkist vikonannya kodu porivnyano z interpretaciyeyu cinoyu vtrati chasu na kompilyaciyu Translyaciya kodu JIT kompilyatorom tak samo yak i interpretatorom ye bezperervnim procesom prote keshuvannya skompilovanogo kodu zmenshuye zatrimku podalshogo vikonannya povtorno vikoristanogo kodu Oskilki v comu vipadku kompilyuyetsya tilki chastina programi zatrimka na kompilyaciyu pered vikonannyam ye menshoyu nizh chas kompilyaciyi vsiyeyi programi Istoriya rozvitku JIT kompilyaciyi yiyi osnovnih pidhodiv RedaguvatiNajpershim opublikovanim JIT kompilyatorom vvazhayetsya robota Dzhona Makkarti nad LISP u 1960 3 V jogo statti Recursive functions of symbolic expressions and their computation by machine Part I angl Rekursivni funkciyi simvolichnih viraziv ta yihnye obchislennya mashinami Chastina 1 vin zgaduye funkciyi sho translyuyutsya pid chas roboti programi unikayuchi neobhidnosti zberezhennya vihidnogo kodu kompilyatora na perfokartah 3 krashim terminom dlya opisanoyi sistemi bude Sistema kompilyaciyi ta zapusku angl compile and go system Inshim rannim zastosuvannyam JIT kompilyaciyi ye robota Kena Tompsona shablonovanij poshuk tekstovogo redaktora QED v yakomu vikoristovuvalas JIT kompilyaciya regulyarnih viraziv u mashinnij kod IBM 7094 pid kerivnictvom OS Compatible Time Sharing System 3 Velikij vpliv mav sposib otrimannya mashinnogo kodu cherez interpretaciyu yakij buv vikoristanij u implementaciyi eksperimentalnoyi movi programuvannya LC kompaniyeyu Mitchell u 1970 roci 4 5 Mova Smalltalk mistila v sobi novatorski aspekti JIT kompilyaciyi Napriklad translyaciya mashinnogo kodu vikonuvalas za potreboyu a rezultat kompilyaciyi keshuvavsya dlya podalshogo vikoristannya U vipadku nestachi pam yati sistema vidalyala vidalyala chastinki cogo kodu ta vidnovlyuvala novoyu kompilyaciyeyu za potrebi 6 7 Mova Self dialekt movi Smalltalk sho buv rozroblenij kompaniyeyu Sun rozvinula ci tehniki ta pevnij chas bula najshvidshoyu z simejstva Smalltalk dosyagayuchi polovini shvidkosti optimizovanogo kodu na C 8 buduchi povnistyu ob yektno oriyentovanoyu movoyu Zgodom Sun pripinili aktivnu rozrobku Self odnak vikoristali otrimanij dosvid u movi Java Termin Just in time kompilyaciya buv zapozichenij z virobnichogo terminu Just in time ta nabuv populyarnosti u Java Dzhejms Gosling vikoristovuvav cej termin z 1993 9 Zaraz JIT kompilyaciya vikoristovuyetsya bilshistyu implementacij virtualnoyi mashini Java oskilki HotSpot bere za osnovu ta aktivno vikoristovuye cyu tehnologiyu Proyekt Dynamo 10 kompaniyi HP buv eksperimentalnim JIT kompilyatorom v yakomu format bajtkodu vidpovidav mashinnomu kodu sistema perevodila mashinnij kod PA 6000 u mashinnij kod PA 8000 Ce prizvelo do zbilshennya shvidkodiyi u deyakih vipadkah do 30 oskilki vidkrilo mozhlivist vikoristovuvati optimizaciyi na rivni mashinnogo kodu napriklad vbudovuvannya kodu dlya krashogo vikoristannya kesh pam yati optimizaciyi viklikiv dinamichnih bibliotek ta inshi sho dostupni tilki pid chas bezposerednogo vikonannya sho robit yih problematichnimi dlya vikoristannya zvichajnimi kompilyatorami 11 12 30 bereznya 2019 roku bulo anonsovano sho PHP 8 otrimaye JIT kompilyaciyu 13 u 2021 roci 14 Pitannya bezpeki RedaguvatiJIT kompilyaciya vimagaye bilshoyi uvagi do pitan bezpeki ta nese pidvisheni riziki oskilki maye na meti vikonannya avtogenerovanogo mashinnogo kodu Skompilovanij kod zberigayetsya v pam yat ta odrazu vikonuyetsya Cej proces vidriznyayetsya vid vikonannya zazdalegid skompilovanogo mashinnogo kodu tim sho u vipadku JIT kompilyaciyi procesor maye vikonuvati kod z zagalnoyi dilyanki pam yati Ce superechit ideyi zahistu vikonavchoyi dilyanki pam yati za yakoyi vikonannya mashinnogo kodu maye buti dozvolene tilki z specialno vidmichenih dilyanok pam yati ta navpaki vikonannya kodu z zagalnoyi pam yati zaboronene oskilki ce ye slabkim miscem zahistu vid zovnishnih vtruchan Z ciyeyi prichini segmenti pam yati z kodom yakij buv skompilovanij na lotu mayut buti vidmicheni yak vikonavchi segmenti Z mirkuvan bezpeki vikonavcha pomitka maye buti vistavlena pislya zapisu kodu v pam yat ta vistavlennya pomitki tilki dlya chitannya read only oskilki odnochasnij dozvil na zapis ta vikonannya segmentu pam yati ye potencijnoyu nebezpekoyu div W X 15 Dlya prikladu Javascript JIT kompilyator Firefox a otrimav taku implementaciyu u versiyi Firefox 46 16 JIT spraying ye pidvidom eksplojta sho vikoristovuye JIT kompilyaciyu yak element heap spraying ataki sho dozvolyaye obijti ASLR ta zahist vikonavchogo prostoru zapovnivshi kupu vikonavchim kodom 17 Div takozh RedaguvatiDvijkova translyaciya HotSpot Common Language Runtime zagalnomovne vikonavche seredovishe vikoristovuye JIT kompilyaciyu Crusoe mikroprocesor sho na lotu vikonuye kompilyaciyu x86 kodu u vlasnij mikrokod GNU lightning biblioteka sho generuye na lotu kod na movi asemblera LLVM Samomodifikovanij kod Dinamichna kompilyaciyaPrimitki Redaguvati Languages Compilers amp Runtime Systems Computer Science and Engineering at Michigan Computer Science and Engineering amer Arhiv originalu za 28 zhovtnya 2020 Procitovano 3 zhovtnya 2020 kexugit Does the JIT take advantage of my CPU docs microsoft com en us Arhiv originalu za 19 lipnya 2020 Procitovano 4 zhovtnya 2020 a b v Aycock 2003 2 JIT Compilation Techniques 2 1 Genesis p 98 Aycock 2003 2 JIT Compilation Techniques 2 2 LC p 98 99 Mitchell J G 1970 The design and construction of flexible and efficient interactive programming systems Aycock 2003 Deutsch L P Schiffman A M 1984 Efficient implementation of the Smalltalk 80 system POPL 84 Proceedings of the 11th ACM SIGACT SIGPLAN Symposium on Principles of Programming Languages 297 302 ISBN 0 89791 125 3 doi 10 1145 800017 800542 Arhiv originalu za 18 chervnya 2004 1 Arhivovano 24 listopada 2006 u Wayback Machine Aycock 2003 2 14 Java p 107 footnote 13 Dynamo A Transparent Dynamic Optimization System Arhivovano 2 chervnya 2012 u Wayback Machine Vasanth Bala Evelyn Duesterwald Sanjeev Banerjia PLDI 00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation pages 1 to 12 DOI 10 1145 349299 349303 Retrieved March 28 2012 John Jannotti HP s Dynamo Page 1 3 2000 Ars Technica Arhiv originalu za 5 lyutogo 2012 Procitovano 5 lipnya 2013 Pomilka Lua u Modul Citation CS1 u ryadku 227 bad argument 1 to insert table expected got nil PHP Gr8 Arhiv originalu za 23 lyutogo 2020 Procitovano 16 zhovtnya 2020 PHP 8 and 7 4 to come with Just in time JIT to make most CPU intensive workloads run significantly faster April 2019 Arhiv originalu za 7 zhovtnya 2020 Procitovano 16 zhovtnya 2020 How to JIT an introduction Arhivovano 17 bereznya 2019 u Wayback Machine Eli Bendersky November 5th 2013 at 5 59 am De Mooij Jan W X JIT kod u Firefox Jan De Mooij Arhiv originalu za 14 travnya 2016 Procitovano 11 travnya 2016 Jurgen Schmidt 20 sichnya 2011 Return of the sprayer JIT Spraying Exploits to beat DEP and ASLR The H Arhiv originalu za 23 sichnya 2011 Procitovano 22 sichnya 2011 Dzherela RedaguvatiAycock J June 2003 A brief history of just in time ACM Computing Surveys 35 2 97 113 doi 10 1145 857076 857077 Thompson K 1968 Programming Techniques Regular expression search algorithm Communications of the ACM 11 6 419 422 doi 10 1145 363347 363387 nbsp Ce nezavershena stattya z informatiki Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title JIT kompilyaciya amp oldid 40463921