Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




JIT

Ceha slovaca


ALTE DOCUMENTE

WiFi: Průniky do sítí a připojení k Internetu
Terry Pratchett - Malí Bohové
Zeň objevů 2000 -- díl pátý
Základy společenských vět
Windows XP Reloaded jsou tu
FOX OUTSIDE THE BOX CONSULTING
2 bajky
BIOS - Vyladění v setupu počítače
Předsunutá stráz
Kvantová geometrie

JIT

JIT (Just-In-Time): v souvislosti s jazykem Java způsob práce s applety na cílové platformě, v rámci uzivatelova browseru. Spočívá v tom, ze tzv. mezikód (téz: byte kód) je místo interpretování nejprve přelozen a ihned poté spustěn. K překladu přitom dochází az při prvním konkrétním pozadavku na volání příslusné části mezikódu, odsud překlad "just in time" (ve smyslu: "na poslední chvíli").



Osobně velmi nerad dělám věci az na poslední chvíli, protoze to znamená pracovat pod neúprosným tlakem časových limitů, a tudíz větsinou ve stresu, kterému často jde na vrub i kvalita výsledného díla (alespoň pokud jde o psaní článků). Jsou ovsem i takové oblasti lidské  343y2410d 69;innosti, pro které je "dělání věcí na poslední moznou chvíli" kýzenou metou, ke které je záhodno směřovat. Příkladem můze být výroba a následná distribuce: pokud se zde dělají věci "do foroty", pak to sice umozňuje jednoduchým způsobem optimalizovat výrobní kapacity a dosáhnout jejich rovnoměrného vytízení, ale na druhé straně to vyzaduje existenci nejrůznějsích skladovacích kapacit, které by vyrovnaly časové rozdíly mezi okamzikem dokončení výroby a okamzikem odběru zbozí koncovým odběratelem. Moznost výroby "na poslední chvíli", tak aby vse bylo dokončeno přesně v okamziku kdy to odběratel chce převzít, by umoznila zcela eliminovat tyto drahé skladovací kapacity. Háček je ale v tom, ze dosáhnout takovéhoto stavu není vůbec jednoduché, zejména po organizační stránce (i stránce "plánování"), a také to nemusí vést na rovnoměrné vytízení výrobních kapacit. V praxi proto můze být optimální řesení někde uprostřed mezi výrobou "do foroty", a výrobou "přesně na čas", pro kterou se v angličtině vzil přívlastek "just in time".

Ve světě počítačů se přívlastek "just in time" začal pouzívat v souvislosti s jazykem Java a s programy, které jsou psány v tomto jazyce, jsou "přibalovány" k WWW stránkám a prováděny přímo u uzivatelů (jako tzv. applety). Jelikoz není předem známo, na jaké výpočetní platformě bude uzivatel spoustět tyto applety (a jelikoz mu autoři Javy nechtěli nadiktovat, ze to musí být nějaká konkrétní platforma, například pouze MS Windows), jsou applety jazyka Java řeseny tak, aby mohly být prováděny na různých platformách. Konkrétně to znamená, ze nejsou tzv. kompilovány, neboli překládány do takového tvaru (tzv. binárního tvaru, či strojového kódu), který je specifický pro určitý typ procesoru a operačního systému (například pro procesory Intel a MS Windows), a který můze být v tomto prostředí přímo spustěn a proveden. Místo toho jsou Javovské applety tzv. interpretovány - coz znamená, ze jsou napsány ve tvaru, který není vázán na zádné specifické prostředí, a je ve své podstatě pouze specifikací toho, co má být uděláno. Na cílové platformě se takto koncipovaný program dostává "do rukou" jinému programu (tzv. interpreteru), který postupně zpracovává jednotlivé pozadavky - konkrétně tak, ze si vzdy domyslí (interpretuje), co kazdý jednotlivý pozadavek obnásí, a pak pozadované aktivity zajistí takovými prostředky, jaké má on sám k dispozici. Konkrétně v případě jazyka Java a jeho appletů je interpretující program součástí ucelenějsího prostředí, kterému se říká Java Virtual Machine (to proto, ze kromě interpretace zajisťuje appletům i jednotné "pracovní prostředí" týkající se například hospodaření s pamětí apod.).

Obecnou výhodou interpretace (oproti kompilaci) je nezávislost interpretovaných programů na konkrétní platformě (specifické pro konkrétní platformu jsou az interpretující programy, tj. interpretry). Právě díky interpretaci pak Java dosahuje své nezávislosti na konkrétní platformě, zatímco například alternativní technologie ActiveX firmy Microsoft pracuje s malými programy (tzv. Active X Controls), které jsou kompilovány do cílového kódu, a tudíz jsou pevně vázány na příslusnou platformu. Nevýhodou interpretace pak je nizsí rychlost v provádění toho, co má být provedeno: konkrétní hodnoty rozdílů sice velmi závisí na druhu činností, ale obecně můze jít az třeba o dvacetinásobný rozdíl v rychlostech. A to uz je opravdu hodně, dost na to aby se hledaly cesty jak takovýto výrazný rozdíl zmensit.

Pro správné pochopení dvou hlavních řesení, které se jiz pouzívají resp. rýsují na obzoru, je třeba si nejprve poněkud poopravit výse naznačenou představu o způsobu interpretace appletů psaných jazyku Java. Bylo by totiz chybou myslet si, ze jednotlivé applety cestují po síti az ke koncovým uzivatelům ve svém zdrojovém tvaru, přesně v takové podobě v jaké je jejich autor napsal (tj. v jazyku Java, který koncepčně vychází z jazyka C++), a ze to je tento zdrojový tvar, který je na cílových platformách interpretován. Ve skutečnosti jsou i Javovské applety svým autorem nejprve "prohnány" skrz překladač, tj. přelozeny. Ovsem nikoli do takového tvaru, ve kterém by jiz mohly být na nějaké konkrétní platformě přímo spustěny, ale pouze do určitého mezitvaru, který usnadňuje jejich přenos a následnou interpretaci na různých platformách. Tento mezitvar, kterému se říká "byte code", je stále jestě nezávislý na konkrétní platformě. Mimochodem, podobné řesení s "mezitvarem" se s oblibou pouzívá i uvnitř klasických překladačů: ty také nejprve přelozí zdrojový tvar programu do svého mezitvaru, a teprve z něj je pak vytvářen (generován) spustitelný kód. Zde, v případě Javy, tento poslední krok chybí: místo generování spustitelného kódu z mezitvaru se vezme přímo tento mezitvar, přenese se po síti (v rámci WWW stránek), a zde je vhodným interpreterem (zabudovaným do prostředí Java Virtual Machine) interpretován.

První mozný přístup k tomu, jak výrazně zrychlit interpretaci byte kódu na cílových platformách, je zabudovat potřebný interpret do hardwaru. Lze se na to dívat také tak, ze se vyvine nový druh procesoru, který bude jako svůj "nativní jazyk" (strojový kód) mít přímo zmíněný byte kód Javy a bude schopen jej přímo provádět (a ne pouze interpretovat). Firma Sun jiz ohlásila své čipy jménem Microjava a PicoJava, které by měly právě takto fungovat.

Druhým mozným přístupem ke zrychlení interpretace javovského byte kódu je kompilace - tedy myslenka nenechat mezikód na cílové platformě interpretovat, ale bezprostředně po jeho "příchodu" ho nejprve přelozit do takového tvaru, jaký je na dané platformě přímo spustitelný, a pak jej také spustit. Efekt bude největsí pro opakované činnosti, například pro cykly: kompilace přímo na cílové platformě sice nějakou dobu trvá, ale výsledný kód je pak opravdu výrazně rychlejsí. Čistý výsledný efekt proto opět velmi závisí na konkrétních programech (appletech), a v praxi můze dosahovat například az desetinásobného rozdílu v rychlostech.

Zajímavý je i konkrétní způsob právě naznačeného překladu mezikódu (Javovského byte kódu) na cílové platformě: vzhledem k celkovému charakteru tohoto mezitvaru a jeho zaměření na snadnou interpretaci není mozné celý mezikód jednoduse přelozit naráz celý, a pak jej spustit. Místo toho je nutné jej překládat az skutečně "na poslední chvíli", v okamziku kdy má být skutečně volán, resp. kdyz mají být volány jeho jednotlivé části. Proto se také příslusné strategii práce s mezikódem v angličtině říká "just-in-time compilation". Příslusné překladače, označované přívlastkem JIT (Just In Time Compilers), jsou jiz dnes bězně k dispozici, a jsou standardní součástí tzv. Java Virtual Machines nejoblíbenějsích WWW browserů.


Document Info


Accesari: 1328
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )