013
29.09.2003, 21:50 Uhr
~(un)wissender
Gast
|
Zitat: |
ao postete [quote]~(un)wissender postete nZahl / 16 zu schreiben ist genau dann ok, wenn man sich darauf verlassen kann, dass der Comiler das als nZahl >> 4 versteht. Division kann, wenn in einer großen Schleife vorkommend, die Performanz ganz erheblich einbrechen lassen.
|
Im Gegenteil.
Quelltext-"Optimierungen", die ohne zwingenden Grund den Sourcecode verschleiern, sind inakzeptabel.
Es ist wahr, dass Divisionen auf den meisten Prozessoren erheblich länger brauchen als Schiebeoperationen. Daraus aber die allgemeine Regel abzuleiten, dass es besser ist zu schieben als zu teilen ist im Zeitalter optimierender Compiler falsch.
nZahl >> 4 zu schreiben ist *nur dann* OK, wenn der Compiler die Division nicht zur Shift-Operation optimiert *und* wenn nachgewiesen ist, dass das Shiften an dieser Stelle einen signifikanten Performance-Gewinn bringt *und* wenn im Quelltext eindeutig dokumentiert wird, was die Shift-Operation eigentlich bewirken soll und warum keine Division kodiert wurde.
ao[/quote]
@ao Na, da sind aber einige Leute anderer Meinung und ein Informatiker sollte schon erkennen, dass >> 4 = /16 oder &1 = %2 wenn er das nicht erkennt, kann er eh nicht gut genug programmier, um komplexere Dinge zu modellieren.
Außerdem ao, schau dir mal meinen Post genau an: Habe ich da nicht gesagt, dass man immer /16 schreiben kann (und sollte)?
Ach so, nenne mir bitte eine Maschine wo Division nicht signifikant langsamer ist als eine Shiftoperation... |