Pro maly pocet polozek je interface vyrazne rychlejsi. Testoval jsem i
vytvareni pole pouze jednou a vysledek je stejny. Tj pro maly pocet je
interface rychlejsi, pro vetsi pocet roste rychlost getId().

Zkusim to s jednim elementem.

P.

27.7.10, Ondra Medek <[email protected]>:
> Mno jestli tady ten vykon neovlivnuje vice ta prace s ArrayList nezli
> sledovane operace. Protoze je list velky, pak se projevu kesovani, GC,
> apod. Spise bych zkusil male pole, ktere se alokuje jen 1x cca treba
> jen 10 elementu, a to pole pak prochazet vicekrat. Anebo mit jen jeden
> element?
>
> 2010/7/27 Pavel Nemec <[email protected]>:
>> Dobry den,
>> resim takovy maly problem toho co je lepsi pouzivat  pro rozliseni
>> typu objektu.
>>
>> Ja jsem zastance pouzivat interface a nechat compilator/runtime aby si
>> vybral, kterou metodu zavola. Muj oponent pochazi vice z Ccka a je mu
>> blizsi pouzivat klice, pripadne instanceof.
>>
>> Ja jsem mel vzdy za to ze instanceof je velmi pomale a nedoporucuje
>> se, nicmene jsem se docetl, ze to jiz davno neplati.
>>
>> Udelal jsem si maly test, kdy zjistuji zda je objekt daneho typu na
>> zaklade volani
>> instanceof
>> interface - nezjistuji, pouze volam interface metodu
>> na zaklade objekt.getID()  + pretypovani.
>>
>> Myslel jsem ze interface bude s prehledem nejrychlejsi, nicmene tomu
>> odpovida jen maly pocet volani (volam v cyklu a zjistuji jestli objekt
>> v listu je daneho typu)
>>
>> pro 20 000 polozekinstanceof: 20000 item took 25milsec, and result is
>> 0 (should be 0)
>> interface: 20000 item took 4milsec, and result is 0 (should be 0)
>> id:       20000 item took 23milsec, and result is 0 (should be 0)
>>
>> pro vysi pocet pak rychlost interface jiz kleas a napriklad pro 20M
>> instanceof: 20000000 item took 284milsec, and result is 0 (should be 0)
>> interface: 20000000 item took 380milsec, and result is 0 (should be 0)
>> id:       20000000 item took 188milsec, and result is 0 (should be 0)
>>
>>
>> Zdrojak je nejednodusi mozny, viz: http://pastebin.ca/1909107
>>
>> je tohle znama vec, a je tedy skutecne jedno zda(co se tyce rychlosti)
>> pouziji instance of misto interface?
>>
>>
>> Diky,
>> Pavel
>>
>
>
>
> --
> Ondra Medek
>

Odpovedet emailem