Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Java - optimálnější kód

Optimalizovať aritmetické operácie na takejto úrovni nemá zmysel. Pokiaľ chceš naozaj porovnávať výkonnosť aritmetických operácií, tak na výsledok má podstatný vplyv procesor, na ktorom to spúšťaš (vygoogli si napríklad, čo znamená pipelining). Výkon ovplyvní aj kód, ktorý je "okolo" (napr. či sa budú premenné načítavať z pamäte alebo z keše), takže jediný správny spôsob, ako to porovnať, je spraviť si benchmark na takom prostredí, kde chceš dosiahnuť maximálny výkon.

Vo všeobecnosti ak sa bavíme o rýchlosti aritmetických operácií, tak celočíselné operácie sú vždy rýchlejšie ako operácie s pohyblivou rádovou čiarkou. Lenže v tvojom prípade chceš porovnať celočíselné násobenie+delenie (dve operácie) voči jednému násobeniu desatinných čísel. A tam môže byť výsledok naozaj rôzny, pretože delenie patrí medzi "pomalé" aritmetické operácie (ak nedelíš mocninou 2, čo ti prekladač zoptimalizuje na bitový posun). Takže rýchlosť zistíš jedine tak, že ju odmeráš. Otázka je, či to chceš robiť, keď už teraz vieš odhadnúť, že to vo výsledku nebude mať prakticky žiaden vplyv.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny