( Finrod | 2012. 05. 02., sze – 14:42 )

Nem egeszen ertem, miert probalsz teljesitmenybeli kovetkezteteseket levonni a bytekod alapjan. Fejben futtatod a JIT compilert? A bytekod nem teljesitmenyre van optimalizalva, hanem leginkabb csak a kodban levo algoritmus reprezentacioja AST-kent, bizonyos statikus optimalizaciokat vegrehajtva rajta (pl. nyilvanvaloan nem elo kodreszletek eltavolitasa, literal inlining, stb.).

A teljesitmeny optimalizacio nagy resze a JIT compiler feladata aminek a bytekod az inputja nem az outputja!!! Emellett pedig rengeteg profiling es egyeb (pl. a tenyleges architektura alapjan optimalis elvegzese valamely primitiv muveletnek) informaciot figyelembe vesz, amit a statikusan forditott nativ kod nem tehet meg.

Emiatt egy JIT compiler-es futtato kornyezet garantaltan legalabb ugyanakkora sebesseget erhet el mint egy statikusan forditott kod, mivel vegrehajthatja ugyanazon optimalizaciokat mint a statikusan forditott (ergo ugyanazt a kodot eredmenyezne), de emellett meg tovabbi informaciok is rendelkezesre allnak ami alapjan lehetseges, hogy meg jobb eredmenyt er el.

A VM altalad definialt feladataival sem tudok teljesen egyeterteni:

> - futtatni, minel gyorsabban.

Egyetertek.

> - elrejteni az alatta levo retegeket minel jobban

Nem feltetlenul ertek egyet. Igenis, lehetseges, hogy a hardver vagy az operacios rendszer vagy a szoftverkornyezet valamilyen funkcionalitasa nem elerheto a VM vagy az osztalykonyvtar altal biztositott absztrakciokon keresztul. Ekkor jobb szeretnem ha ez a funkcionalitas nem teljesen rejtett es teljesen hozzaferhetetlen lenne.

> - kozos interfeszeket definialni a kulonbozo nyelven irt rendszerek kozott

Most mirol beszelsz tulajdonkeppen?

Egy (J)VM-ben futo tobb kulonbozo nyelven irt rendszerrol, ertsd library-krol? Ez esetben igen, nem art ha kompatibilis a generalt bytekod egymassal minel kisebb overhead-del.

Tobb (J)VM-ben vagy adott esetben nem is JVM-ben futo rendszerek kozti kommunkaciorol? Ez megis MIERT lenne a VM feladata? Ez egyertelmuen az osztalykonyvtare.