[Java lista] for: ++i vagy i++

biziclop biziclop at gmail.com
2009. Feb. 9., H, 11:41:02 CET


2009/2/9 Andras Suller <suller.andras at gmail.com>:
> Varjasi Norbert <varjasin at sze.hu> írta (2009. február 8. 22:12):
>> Ha már optimalizálni szeretnénk, akkor egy újabb adalék, amelyet
>> nevezhetnénk a beágyazott programozók kedvenc ciklusának is:
>> i++, vagy i-- ?
>> Kérdés miért jobb a t2-es hívás, mint a t1? (Iterációnként legalább egy
>> belső hívással.)
>> void t1(int n){
>>        for (int i=0; i<n; i++){
>>            muvelet(i);
>>        }
>>    }
>> void t2(int n){
>>        for (int i=n; i>0; i--){
>>            muvelet(i);
>>        }
>> }
>
> Mivel a muvelet felhasználja az i értékét, így a két megoldás
> szerintem nem ekvivalens. Optimalizáláskor nem biztos, hogy az egyiket
> a másikba át lehet alakítani, ez feladatfüggő. Már csak azért is, mert
> az i értékkészlete a két függvény esetén nem ugyanaz :)
>
> psmith

Szerintem viszonylag jogosan elvarhato, hogy ha a ket kod pontosan
ugyanazt csinalja, akkor ugyanaz legyen a bytecode-ja is. (Tekintve
hogy rendkivul egyszeru esetrol van szo.)

Es megforditva: ha kulonbozo bytecode-ot akarsz latni, akkor ugy kell
hasznalnod a ket operatort, hogy kulonbozo mukodest vonjon maga utan.

Vagy csak en vagyok ennyire egyszeru?

lsp


További információk a(z) Javalist levelezőlistáról