Hlavní navigace

Názory k článku Pohled pod kapotu JVM (8.část - instrukce určené pro řízení běhu programu)

Článek je starý, nové názory již nelze přidávat.

  • 1. 2. 2012 21:25

    atarist (neregistrovaný) ---.redhat.com

    Zdravim, zajimalo by me, jestli nekdo nezkoumal, jak je na tom tady popisovany JVM s virtualnim strojem Pythonu nebo s Parrotem (ci jak se nadava ta vec pro Perl :-). Protoze mam pocit, ze Python VM je taky zasobnikove orientovana, ale vic high-level, coz je dobre i spatne, tezko to posoudit.

  • 1. 2. 2012 21:27

    atarist (neregistrovaný) ---.redhat.com

    Jeste doplnim, ze me nezajima Jython - ten se preklada do JVM bajtkodu, zrovna minuly vikend jsem s nim trosku bojoval ^W laboroval. Ale bezny Python, tj. stroj co bere soubory .jyc a nejak je interpretuje.

  • 2. 2. 2012 11:41

    judovana (neregistrovaný) ---.redhat.com

    Vsechny aplikace ktere jsem kdy psal pro javu a v njeake obmene pro python (pripadne obracene) byly v jave vzdy minimalne o kousek rychlejsi.

    Jinak diky autorovi. Pekna serie. Namotivovalo me to k malemu vlastnimu dekompilatoru pro studyjni ucely:)

  • 2. 2. 2012 21:47

    xtr (neregistrovaný) ---.net.upcbroadband.cz

    Jen poznamka k jython 2.5.2. Pouzivam ve spojeni s Javou 1.6 (jak knihovny napsane v jave z pythonu, tak i obracene). Ad rychlost: me osobne rozhodne jython nepripada rychlejsi nez program napsany v Jave, ale nechci flejmovat, jde o ciste subjektivni nazor, nemeril jsem to. Dojem take podpori fakt, ze cas na bootstrap jythonu v zavislosti na parametrech hw i OS muze byt i nekolik vterin (v mojem pripade je to kolem 5sec na 4jadru a 3GB pameti, ale win32 podotykam).

    Dal, nemuzu rict, ze bych nemel neprijemnosti -- zejmena dojde-li na pouzivani python modulu a java packages (oboji z filesystemu) z jythonu. Obcas zabrednu do nepekneho problemu, ze jython mylne detekuje v adresarove strukture (nejde ale o konflikt nazvu) a z python modulu si vymysli javapackage, coz je maler, neb v nem nenalezne zadne pythonni moduly (lepe: nehleda je v tom pripade) a tak koncite s ImportErrorem. Deje se mi to nahodile na win32 i linuxu, a i po promazani global cache a vygenerovanych $py.class souboru nemam jistotu, kdy me to zase potka. A zabaleni java packages do .jaru s tim taky nehne. Az prijdu na to, jak deterministicky zreprodukovat tenhle problem, udelam bug report, zatim se mi to ovsem nedari.

    Do tretice chci jen zduraznit, ze .py soubory zkompilovane do $py.class nefunguji tak, ze by se daly spustit bez jython runtime, ten stale musi byt na classpath jvm, protoze beh zajistuje.

    Bonus: dalsim subjektivnim dojmem je, ze i po bootstrapu se pythonni modul nacita mnohem dele jythonem nez cpythonem (a to opet jak lin tak win).

    Nicmene, napriklad dojde-li na lamani chleba, a je nutno pouzit debugger, i kdyz je skript spusteny volanim z javy, da se pouzit, kdyz pohrdnete pdb, pydev debugger. Ten jde napojit na IDE a da se ladit docela pohodlne, byt uznavam, do skriptu se musi vlozit nejaky ten radek s importem pydevu a napojenim na debugger server po TCPku. Ale porad lepsi, nez nemit vizualni debugger vubec.

    At s jythonem dobre poridite!

  • 2. 2. 2012 17:40

    Pavel Tišnovský

    Javovský virtuální stroj je oproti tomu Pythonovskému poměrně dost nízkoúrovňový, je totiž orientován na operace s primitivními datovými typy + referenceni a jediné vysokoúrovňové instrukce jsou invoke* (včetně moderní invokedynamic). U Pythonu se sice taky jedná o zásobníkový kód, ale ten je "polymorfní" a navíc jsou v něm dost složité instrukce pro práci se seznamy, hashmapami atd. Řekl bych, že půjde líp optimalizovat :-)