Myslel jsem v tom uz mame jasno: takovouto optimalizaci je lepsi nechat na prekladaci.
K @Immutable: tuto anotaci zminuje jiz Brian Goetz a spol. v Java Concurrency in Practice z roku 2006. Jeji pouziti ma vsak i uskali: napr. String neni ciste immutable, protoze ma atribut, ve kterem si uklada hashCode. Hodnota toho atributu je na zacatku 0 a pri prvnim volani hashCode() se zmeni. Nicmene jako pomucka pro vyvojare by @Immutable uzitecne bylo. U optimalizaci bych vsak byl opatrnejsi, protoze vetsinu zde zminenych optimalizaci dela JIT a ne javac. Z.T. -- Zdenek Tronicek FIT CTU in Prague Pecinovský Rudolf napsal(a): >> Typicky priklad na to, kdy muze runtime podobne optimalizace delat jsou >> operace bez sideefectu. ... > > Pořád jde o to, jestli mám optimizovat já nebo překladač. > > Když budu optimalizovat já, musím neustále hlídat, jetli se nezměnily > podmínky, které mi danou optimalizaci umožní. Nechám-li to na překladači, > nemusím hlídat nic. Při vhodně napsaném programu by dobrý překladač mněl > poznat, že v daném případě je zkrácené vyhodnocováné méně efektivní a lze > je nahradit. > > Abychom mu pomohli, bylo by užitečné, kdyby Java zavedla anotaci > @Immutable, po níž by překladač zkontroloval, že instance touto anotací > označeného datového typu jsou opravdu neměnné, a pak by této znalosti mohl > při nějakých následných optimalizacích využít. > > > __________ Informace od ESET NOD32 Antivirus, verze databaze 5336 > (20100803) __________ > > Tuto zpravu proveril ESET NOD32 Antivirus. > > http://www.eset.cz > >