www.wikidata.uk-ua.nina.az
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno 8 lyutogo 2021 V informatici dinamichna perekompilyaciya inodi skorochena do dynarec abo psevdo akronim DRC ye osoblivistyu deyakih emulyatoriv ta virtualnih mashin de sistema mozhe perekompilyuvati yakus chastinu programi pid chas vikonannya Kompilyuyuchi pid chas vikonannya sistema mozhe adaptuvati zgenerovanij kod shob vidobrazhati seredovishe vikonannya programi i potencijno mozhe viroblyati bilsh efektivnij kod vikoristovuyuchi informaciyu nedostupnu dlya tradicijnogo statichnogo kompilyatora Zmist 1 Vikoristannya 2 Zavdannya 3 Prikladi 4 Prikladi vikoristannya 4 1 Prikladi v programah 4 2 Prikladi v igrahVikoristannya red Bilshist dinamichnih rekompilyatoriv vikoristovuyutsya dlya peretvorennya mashinnogo kodu mizh arhitekturami pid chas vikonannya Ce zavdannya chasto potribne pri emulyaciyi zastarilih igrovih platform V inshih vipadkah sistema mozhe zastosovuvati dinamichnu rekompilyaciyu yak chastinu adaptivnoyi strategiyi optimizaciyi dlya vikonannya perenosnogo predstavlennya programi takogo yak bajt kodi Java abo NET Common Language Runtime Povnoshvidkisni nalagodzhuvachi takozh vikoristovuyut dinamichnu rekompilyaciyu shob zmenshiti nakladni vitrati na prostir sho vinikayut u bilshosti metodiv deoptimizaciyi ta inshi funkciyi taki yak dinamichna migraciya potokiv Zavdannya red Osnovnimi zavdannyami yaki povinen vikonuvati dinamichnij rekompilyator ye Chitannya mashinnogo kodu z vihidnoyi platformi Vidaye mashinnij kod dlya cilovoyi platformiDinamichnij rekompilyator mozhe takozh vikonuvati deyaki dopomizhni zavdannya Keruvannya keshem perekompilovanogo kodu Onovlennya pidrahunku minulogo ciklu na platformah za dopomogoyu registriv pidrahunku cikliv Upravlinnya perevirkoyu pererivan Nadannya interfejsu dlya virtualizovanogo obladnannya pidtrimki napriklad grafichnogo procesora Optimizaciya struktur kodu vishogo rivnya dlya efektivnoyi roboti na cilovomu obladnanni div nizhche Prikladi red Pripustimo programa zapuskayetsya v emulyatori i yij potribno skopiyuvati ryadok iz nulovim zakinchennyam Programa skladena spochatku dlya duzhe prostogo procesora Cej procesor mozhe odnochasno kopiyuvati lishe bajt i ce potribno robiti spochatku zchituyuchi jogo z vihidnogo ryadka v registr a potim zapisuyuchi z cogo reyestru v ryadok priznachennya Originalna programa mozhe viglyadati priblizno tak beginnig mov A first string pointer mov B second string pointer loop mov C A mov B C inc A inc B cmp C 0 jnz loop end Mozhlivo emulyator pracyuye na shozhomu procesori ale nadzvichajno dobre kopiyuye ryadki i emulyator znaye sho mozhe cim skoristatisya Vin mozhe rozpiznati poslidovnist instrukcij shodo kopiyuvannya ryadkiv ta virishiti perepisati yih efektivnishe koristuvannya pered vikonannyam shob skoristatisya emulyaciyeyu Skazhimo ye instrukciya shodo nashogo novogo procesora pid nazvoyu movs specialno rozroblena dlya efektivnogo kopiyuvannya ryadkiv Nasha teoretichna instrukciya movs kopiyuye 16 bajtiv za raz bez neobhidnosti zavantazhennya yih u registr C mizh nimi ale v centri yaksho kopiyuye 0 bajt sho viznachaye kinec ryadka i vstanovlyuye nulovij prapor Vin takozh znaye sho adresi ryadkiv budut u reyestraciyi A ta B a potim vin zbilshuye A ta B na 16 kozhnogo razu koli vin vikonuyetsya gotovij do nastupnoyi kopiyi Nash novij perekomponovanij kod mozhe viglyadati priblizno tak beginnig mov A first string pointer mov B second string pointer loop movs B A jnz loop end Isnuye negajna perevaga v shvidkosti prosto tomu sho procesoru ne potribno zavantazhuvati stilki instrukcij shob vikonati odne i te zh zavdannya a j tomu sho instrukciya movs jmovirno bude optimizovana dizajnerom procesora shob buti efektivnishoyu nizh poslidovnist yaka vikoristovuyetsya v pershij priklad Napriklad vin mozhe krashe vikoristovuvati paralelne vikonannya v procesori dlya zbilshennya A i B poki vin she kopiyuye bajti Prikladi vikoristannya red Prikladi v programah red Cej rozdil maye viglyad pereliku yakij krashe podati prozoyu Vi mozhete dopomogti viklasti spisok prozoyu de ce dorechno Oznajomtesya z dovidkoyu z redaguvannya 8 lyutogo 2021 Bagato virtualnih mashin Java mayut dinamichnu rekompilyaciyu Apple s Rosetta dlya Mac OS X na x86 dozvolyaye zapuskati kod PowerPC na arhitekturi x86 Piznishi versiyi emulyatora Mac 68K sho vikoristovuyutsya v klasichnij Mac OS dlya zapusku kodu 680x0 na aparatnomu zabezpechenni PowerPC Psyco specializovanij kompilyator dlya Python Proekt HP Dynamo priklad prozorogo dvijkovogo dinamichnogo optimizatora DynamoRIO nastupnik Dynamo z vidkritim kodom yakij pracyuye z naborami instrukcij ARM x86 64 ta IA 64 Itanium Virtualna mashina Vx32 vikoristovuye dinamichnu perekompilyaciyu dlya stvorennya nezalezhnih vid OS pisochnic arhitekturi x86 dlya bezpechnih dodatkiv Virtualnij PK Microsoft dlya Mac yakij vikoristovuyetsya dlya zapusku kodu x86 na PowerPC QEMU emulyator povnocinnoyi sistemi z vidkritim kodom FreeKEYB mizhnarodnij DOS drajver klaviaturi ta konsoli z bagatma pokrashennyami yuzabiliti vikoristovuvav samomodifikuyuchij kod ta dinamichne vidalennya mertvogo kodu shob minimizuvati jogo zobrazhennya v pam yati na osnovi jogo konfiguraciyi koristuvacha vibrani funkciyi movi maketi ta faktichnogo seredovisha vikonannya variant OS ta versiya zavantazheni drajveri bazove obladnannya avtomatichne virishennya zalezhnostej dinamichne peremishennya ta povtorne poyednannya rozdiliv kodu na rivni bajtovosti ta optimizaciya opstringiv na osnovi semantichnoyi informaciyi nadanoyi u vihidnomu kodi informaciyi pro peremishennya sho generuyetsya specialnimi instrumentami pid chas skladannya ta informaciyi profilyu pid chas zavantazhennya OVPsim vilno dostupnij povnij emulyator sistemi VirtualBox vikoristovuye dinamichnu rekompilyaciyu Valgrind instrument programuvannya dlya nalagodzhennya pam yati viyavlennya vitokiv pam yati ta profilyuvannya vikoristovuye dinamichnu rekompilyaciyu Prikladi v igrah red Cej rozdil maye viglyad pereliku yakij krashe podati prozoyu Vi mozhete dopomogti viklasti spisok prozoyu de ce dorechno Oznajomtesya z dovidkoyu z redaguvannya 8 lyutogo 2021 MAME vikoristovuye dinamichnu rekompilyaciyu v svoyih emulyatorah procesoriv dlya MIPS SuperH PowerPC i navit grafichnih procesoriv Voodoo Wii64 emulyator Nintendo 64 dlya Wii WiiSX emulyator Sony PlayStation dlya Nintendo Wii Mupen64Plus bagatoplatformovij emulyator Nintendo 64 Yabause bagatoplatformovij emulyator Saturna U funkcionalah zvorotnoyi sumisnosti Xbox 360 tobto zapushenih igor napisanih dlya originalnogo Xbox shiroko zastosovuyetsya dinamichna rekompilyaciya PPSSPP portativnij emulyator Sony PlayStation Perekompilyatori dlya x86 ta ARM PSEmu Pro emulyator Sony PlayStation Ultrahle pershij emulyator Nintendo 64 yakij povnistyu zapuskaye komercijni igri PCSX2 9 emulyator Sony PlayStation 2 maye rekompilyator pid nazvoyu microVU nastupnik SuperVU Dolphin emulyator Nintendo GameCube ta Wii maye opciyu Dynarec GCemu 10 emulyator Nintendo GameCube NullDC emulyator Sega Dreamcast dlya x86 GEM 11 emulyator Nintendo Game Boy dlya MSX vikoristovuye optimizuyuchij dinamichnij rekompilyator DeSmuME 12 emulyator Nintendo DS maye opciyu dynarec Soywiz s Psp 13 portativnij emulyator Sony PlayStation maye opciyu dynarec RPCS3 emulyator Sony PlayStation 3 Perekompilyuye yak PPU tak i SPU na stilnikovomu procesori dlya x86 64Decaf emu emulyator Wii U vikoristovuye dinamichnu perekompilyaciyu JIT z PowerPC32 do obladnannya kodu x86 64 za dopomogoyu biblioteki libbinrec sama biblioteka mozhe pracyuvati na bud yakij aparatnij arhitekturi Otrimano z https uk wikipedia org w index php title Perekompilyaciya amp oldid 34413887