optimierung mit gcc
-
^^probiers aus. ansonsten: für x86 wird sich im netz leicht eine asm-variante von md5 finden lassen. ich hab' mal die geschwindigkeit einer crypto-funktion, die ausgiebig sha-1 verwendet, durch den einsatz von assembler um ca. faktor 10 beschleunigen können.
-
Die Frage ist doch was für eine Zeit erwartest du denn? Ist ja klar, dass es Teile deines Codes gibt die die meiste Rechenzeit verschlingen, ich erinnere an die 90:10 Regel (10% des Codes verschlingen 90% der Rechenzeit).
Wenn du keinen Grund zur Annahme hast, dass die Implementierung des MD5 Algorithmus nicht optimiert wurde, dann kannst du nichts mehr wirklich rausholen. Alles was über O2/O3 hinaus geht hat kaum mehr einen spürbaren Performancegewinn.
Da sollte man die Zeit besser in einen anderen (besseren) Algorithmus investieren.Brauchst du z.B. unbesingt MD5, oder geht auch an anderes Hashing Verfahren, das weniger Rechenzeit benötigt?
-
Ich habe bei weitem nicht so große Programme, mein kompilieren dauert (mit umrechnen von 8 *.c in *.dll files) so ca. 10 - 20 sekunden... was nicht heißt das ich nciht optimieren muss..
Hier ein paar fragen von nem anfänger xD:
ghorst schrieb:
du sollst nicht vermuten. jage einen profiler drüber, schaue, wo es wirklich hängt und dann kann dir vllt auch geholfen werden.
die allgemeingültigen optimierungsflags sind in -02 und -03 eigentlich alle mit drin. speziellere hängen von deinem code ab.Was ist ein Profiler?
-
lippoliv schrieb:
Ich habe bei weitem nicht so große Programme, mein kompilieren dauert (mit umrechnen von 8 *.c in *.dll files) so ca. 10 - 20 sekunden... was nicht heißt das ich nciht optimieren muss..
es geht nicht darum, wie langer der compiler zum übersetzen braucht, sondern darum, dass das resultat zu viel zeit verbrät.
lippoliv schrieb:
Was ist ein Profiler?
das ist ein speziell ausgebildeter kriminalist, der tätern mit wissenschaftlichen methoden der psychologie, soziologie, etc. auf die schliche kommt.
ne, im ernst: so schimpfen sich tools zur performanceanalyse von programmen.
-
Gut danke...
sind die freeware/open source/anwendbar?Würde gerne mal ein Programm von mir "analysieren" lassen xD
-
lippoliv schrieb:
Gut danke...
sind die freeware/open source/anwendbar?kommt auf die toolchain drauf an. was nimmts du? gcc/mingw? dafür gibts den 'gprof'. ich weiss aber nicht, ob der was taugt. lcc-win32 hat auch 'nen profiler dabei.
-
Danke! Werds mal testen
-
lippoliv schrieb:
Gut danke...
sind die freeware/open source/anwendbar?Würde gerne mal ein Programm von mir "analysieren" lassen xD
Valgrind ist die Nr.1
Aber das läuft nur unter Linux.
Falls dein Code portabel sein sollte, sollte aber das kein problem sein.
-
weil valgrind auch soviel mit performanceoptimierung zu tun hat
-
sothis_ schrieb:
weil valgrind auch soviel mit performanceoptimierung zu tun hat
Zum Profilen ist es Tool Nr. 1
Das sagen alle.