Hirdetés
- One mobilszolgáltatások
- iPhone topik
- Xiaomi 17 Ultra - jó az optikája
- Okosóra és okoskiegészítő topik
- Milyen okostelefont vegyek?
- Így lehet kiszúrni, ha kamu AirPods fülest akarnak eladni neked
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- Xiaomi 17 - még mindig tart
- Szívós, szép és kitartó az új OnePlus óra
- Yettel topik
Új hozzászólás Aktív témák
-
modder
aktív tag
Hali, nagyjából jó, amiről beszéltek, de kicsit össze vagytok zavarodva.
Azt mondjátok, hogy "ha változtatsz a kódon, a JIT csak azt fordítja újra". De ehhez előbb nyilván bytekódot kéne generálni, szóval ez a példa nem jó.
A jvm interpreterként működik: veszi a bytekódot, és sorról sorra megfeleltetni egy-egy gépi utasításnak vagy jvm-beli utasításnak. Ilyen a PHP is, a python is, az összes interpretált nyelv.
Amitől a JVM-et Hotspot-JVM-nek hívják az a JIT, ami az alábbi tulajdonságot aknázza ki:
Általában elmondható, hogy egy program a futása során az idő 90%-át a programrészek (függvények) 10-20%-ában tölti el.és ebből jön a JIT működése:
A JVM futtatja a kódot, statisztikákat készít róla futás közben (profiling). Megtalálja ezt a 10%-ot, ahol a program a futása során a legtöbb időt tölti, majd ezeket a kódokat direktbe lefordítja a célgép gépi kódjára, majd beszúr egy ugrást az eredeti bytekódba (természetesen a memóriában, a .class fájlokba nem ír semmit), hogy most onnantól a gépi kódos rész fut.Az optimalizálás pl. abban nyilvánul meg, hogy a JVM látja, mik azok a feltételek, amik sok-sok lefutás után sosem teljesülnek vagy mindig teljesülnek, és úgy fordítja az adott kódrészletet gépi kódra, hogy ezeket a feltételeket alapból igaznak vagy hamisnak veszi
Például egy if-else ág mindig csak egyik fele igaz, akkor úgy fordítja le a kódot, hogy ki is hagyja a feltételvizsgálatot. Természetesen folyamatosan figyeli ezeket az előfeltételeket, és ha van 1 eset, amikor mégis lefutna a kioptimalizált rész, akkor az eredeti bytekódot futtatja interpretált módban.Szó sincs arról, hogy mindent gépi kódra fordít.
Remélem tisztáztam

Szerk:
még annyi, hogy ezek mind a program 1-1 futása során történnek. nincsen olyan, hogy a futását befejező program gépi kód részeit valahová elmenti, és ha újra futtatod, akkor azokat betölti. ezek mint just-in-time egy-egy futás alkalmával történő változtatások. ( ezt azért mondom, mert régen én így képzeltem
)
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Macbook Pro 14" A2442 2021 M1 Pro 16/1TB (2)
- Dell Latitude 5401,14" FHD,i7-9850H,16GB DDR4,512GB SSD,WIN11,ÚJ AKKU
- Fury 15 G8 15.6" FHD IPS i7-11850H RTX A2000 32GB 512GB NVMe magyar vbill ujjolv gar
- ZBook Firefly 14 G11 14" FHD+ IPS Ultra 7 155H RTX A500 32GB 1TB NVMe ujjlolv IR kam gar
- Garmin Epix Sapphire White Titanium (Gen2) - Bontatlan
- AKCIÓ! 1TB NVMe SSD, 1 év gar 2230
- Lenovo ThinkPad T15 Gen 2 i5-1135G7 16GB Ram 256 GB SSD FHD IPS Garancia
- Apple Magic Keyboard A2261, magyar billentyűzet iPad Air 11"/ iPad Pro 11" - 27% ÁFA
- Azonnali készpénzes nVidia RTX 4000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Samsung Galaxy S26 Ultra Spigen tok, üvegfólia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

)
