Keresés

Hirdetés

Új hozzászólás Aktív témák

  • ddekany

    veterán

    válasz fgordon #35 üzenetére

    "Kíváncsi vagyok, mikor jön ki az a megoldás, hogy az Android-ot opcionálisan natív módban is lehet telepíteni: ilyenkor valami fordító a java-t átfordítja C/C++ -ra (mint a Facebook HiPHoP PHP-ja C-re ), és érezhetően gyorsabb lesz."

    Ez nem ilyen egyszerű... gyorsabban indulna, de utána lassabb lenne. A Java byte-kód fokozatosan natív gépikódra fordul ahogy fut a program, és aztán amíg be nem zárod úgy is marad (u.n. just-in-time compilation, JIT). Ha eleve C/C++-ben írnak valamit, az más tészta (mert eleve máshogy közelíted meg a problémákat akkor), de ha egy Java programot átfordítasz C/C++-re gépileg, a fordító aligha tud ügyesebb lenni mint a JIT. Amit megtakarítasz, az az, amit maga a JIT megeszik, viszont az szinte csak akkor eszik CPU-t mikor nemrég indult vagy épp indul az alkalmazás, meg mondjuk utána némi RAM-ot.

    Mellékesen az android Dalvik alapú, nem igazi "Java", aminek mondjuk primitívebb a JIT-e mint a Sun féle Java megvalósításnak, sőt nemrég még JIT-je se volt szegénynek.

  • ddekany

    veterán

    válasz fgordon #79 üzenetére

    "miért tud gyorsabb lenni a JIT alapú program, ha ott fordítani kell"

    De csak kb 1x kell fordít programindításonként, utána ugyan úgy natív mint a C/C++. Amiért egy JIT fordító potenciálisan megver egy előre-fordítót (ami C/C++ esetén is használnak), az az, hogy több információ áll rendelkezésére az optimalizáláshoz, mivel működés közben vizsgálhatja a programot (ezért is van amúgy, hogy a Java cuccok maximális sebességüket némi bemelegedés után érik el, mikor a JIT-nek már elég statisztika áll rendelkezésre). Amúgy ügyesen írt C/C++-vel általában meg lehet verni a Java-t sebességben és főleg memória használatban, de az azért van, mert C/C++ lehet más megközelítéssel programozni mint Java-ban, viszont ha Java-t fordítasz C/C++-ra akkor a megközelítés már adott volt, szóval valószínűleg már csak bénább lehetsz egy jó JIT-nél.

Új hozzászólás Aktív témák