Jeste doplnim. Mozna vas bude zajimat tento post:
http://mail.openjdk.java.net/pipermail/zero-dev/2009-July/000188.html
Predevsim veta "The Dalvik interpreter looks on the surface as a obfuscated Jamvm so try fit the LLVM JIT to JamVM and it will probably end up in Dalvik automagically."
(prozatim jsem nijak zvlast rozdily mezi Dalvikem a JamVM nezkoumal)
Plus este by som pridal, ze robit benchmark v jave pri jedinom spusteni je nezmysel sam o sebe
vid napr.
http://www.ibm.com/developerworks/java/library/j-benchmark1/index.html
Nee, JIT se pri ConcatTest provede a to diky tomu, ze se funkce pro konstrukci retezce schvalne vola ze smycky. Kdyby tam ta smycka v main() nebyla, tak by se skutecne JIT (kdyz se tedy bavime o HotSpotu) nemusel provest, ale s tou smyckou ano, ostatne staci si nechat vyhodit vypisy prace HotSpotu - ty trosku rozhazou vysledky.
Opakovane spusteni JRE ale class loading nijak neovlivni, maximalne se natahnou knihovny JRE do pameti a zustanou tam viset, coz se udela hned v prvnim behu testu ne? Takze tato fluktuace mozna ovlivni prvni beh, dalsi uz ne.
Ja mam dokonce hotove vysledky SPECjvm a SPECjbb, ale ty jsou dost nevypovidajici z toho duvodu, ze jejich vysledkem jsou nejake hodnoty syntetizovanych testu, pricemz neni moc jasne, ktere casti virtualniho stroje nebo systemu ten test ovlivnuji (navic se SPECjbb jsou trosku problemy s publikaci vysledku, jsou tam nejaka omezeni).
Snazil jsem se udelat co nejjednodussi testy ktere:
1) ukazi, ze v nekterych pripadech technologicky prakticky dokonaly HotSpoti JIT neprinasi zadny uzitek (ConcatTest)
2) naopak porovnat HotSpot JIT na cistem vypoctu bez I/O operaci, kde se jasne ukaze, ze tady pouziti interpretru je dost problematicke.
Napr. :-) alebo staci Tomcat a skumat skalovatelnost realnej aplikacie a spotrebu jej zdrojov. Ono sa potom podla mna prejavi kvalita implementacie konkretneho VM. Napr take thready a synchronizacia by som povedal dost zavisia na kvalite implementacie a kolko aplikacii bezi v cisto single-thread mode? Ak neratam cvicenia typu Hello Word tak asi minimum.
Inac zopakujem znova, clanok velmi dobry ale ked uz testovat tak nejako viac do hlbky.
Mate pravdu, neco velmi podobneho se testuje prave ve SPECjbb (v podstate benchmark multithreadovych business aplikaci). Jeste si budu skutecne muset projit licencni podminky, kde se mluvi o tom, jake vysledky je mozne zverejnit.
Jeste jsem zapomel v clanku zminit, ze JamVM pouziva POSIX thready, coz s sebou nese jak ruzna pozitiva, tak i zapory, zkusim to jeste poradne projet.
Podle FAQ chteji jen provest review pred zverejnenim.
http://www.spec.org/jbb2005/docs/FAQ.html#Qannounce