JIT to muze poznat i kdyz operand obsahuje volani metody, protoze bezne provadi "method inlining" (pri nem je volani metody nahrazeno jejim telem). Inlining se nedela vzdy (zalezi to na typu a velikosti metody a konfiguraci JVM), nicmene ve spouste pripadu ano. V kombinaci s operandy, ktere testuji obsahy promennych, to pokryva pomerne velkou cast logickych vyrazu.
Z.T. -- Zdenek Tronicek FIT CTU in Prague Vyvijite API? http://www.java.cz/article/evoluceapi Ondrej Nekola napsal(a): > 2010/8/3 Pecinovský Rudolf <rudolf.pecinov...@i.cz> > >> > Jak to Josh Bloch myslel nevim, ale ze & muze byt rychlejsi nez && me >> > neprekvapuje. Pri pouziti & procesor muze vyhodnocovat operandy >> paralelne, >> > zatimco u && musi pockat, jak dopadne vyhodnoceni prvniho operandu. >> Takze >> > pokud jsou operandy nezavisle a procesor vicejadrovy, tak to bude >> mozna i >> > docela caste. >> >> Jak ale překladač pozná, že operandy jsou nezávislé? >> To může poznat pouze tehdy, když jsou oba hodnotami proměnných. >> >> Jakmile je první z nich funkce, muselo by se analyzovat, zda tělo té >> funkce >> neovlivní hodnotu druhého operandu. U druhého se naopak musí vědět, >> jestli >> se vůbec smí vyhodnocovat. >> >> Na moje gusto příliš mnoho vedlejších pdmínek. >> Pak stačí drobná změna zadání, některá z těchto podmínek přestane platit >> a >> vyhodnocovaný výraz podmínka začne nenápadně poskytovat nekorektní >> výsledky. >> > > Typicky priklad na to, kdy muze runtime podobne optimalizace delat jsou > operace bez sideefectu. A typickym prikladem operaci bez sideefectu jsou > operace nad imutable datovymi strukturami, Jedna ze situaci, kdy dobry > styl > i podporuje rychlost. > > ...a samozrejme nikdo nerika, ze je to snadne. Takova optimalizace muze > napriklad dobre fungovat, ale runtime ji musi zrusit pri nejakem > classloadingu, ktery vyzaduje devirtualizaci nektere z volanych metod. > > (A mimochodem: podobne optimalizace se mnohdy deji i pod pokickou > procesoru. > Predstava, ze "co do nej prijde se vykona tak, jak to prislo" plati pri > pohledu zvenci, ne pri pohledu zevnitr.) > -- > S pozdravem > Ondřej Nekola >