Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
|
Re: Kleiner Optimierungstest
9. Jul 2006, 10:07
Hi,
nebst dass ich den beiden vorhergehenden Beiträgen einmal voll zustimmen möchte, wollte ich hier noch sagen, dass ich bei dir keine Optimierungen sehe.
Ich meine klar, ist schon interessant zu sehen, dass deine Programme je nach Auslastung unterschiedliche Zeiten verbrauchen. Hier wäre es natürlich wichtig zu wissen wie viele Läufe mit jeder Konfiguration du gemacht hast und welche Optimierungen du aktiviert hast (oder ebend nicht).
Aber viel wichtiger ist, es ist nichts optimiert. Wenn ich eine if-Abfrage um 2% schneller gestalten könnte (egal wie), von was für eine Anzahl von Takten sprechen wird denn dann bitte? Und wieviel Zeit ging da bisher verloren? Ich denke die wirklich aufwändigen Operationen finden doch woanders statt.
Zudem stellt sich für mich die Frage, warum du hier die Verminderung von Rechenzeit mit Optimierung gleichsetzt. Optimaler Code sollte vorallem verständlich sein. Es ist wirklich eine der wichtigsten Eigenschaften von guten Code, dass er lesbar/wartbar/erweiterbar/... bleibt. Ob ich dabei 5% Geschwindigkeit auf der Strecke lasse ist letztlich egal. Das ist mit einer der vielen folgenden CPU-Generationen eh vergessen. Wahrscheinlicher ist sogar, dass die Compileroptimierung es eh besser weiß und wie in diesen Beispielen eh den gleichen Code erzeugt.
Zudem läuft die Momentane Entwicklung auf Multithreading hinaus, du hast verschiedene Kerne und mehrere ALUs mit eigenen Pipelines. Hier wird sich kaum ein kleiner Unterschied in so einfachen Abfragen (deiner Beispiele) bemerkbar machen, als vielmehr das schreiben guter nebenläufiger Programme. Je nachdem wie gut du hier synchronisierst, sollte einiges mehr an Unterschied messbar sein und je nach CPU auch nochmal zwischen Single- und Multithreading.
Gruß Der Unwissende
|