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
>

Odpovedet emailem