G
Tc++H schrieb:
Mir geht es hauptsächlich darum, den Copykonstruktor von einer "Image class" zu beschleunigen. Was steht überhaut in der memcpy in asm drinne?
Nichts was man hier posten könnte.
memcpy ist eine Funktion, die idR von Compilern intrinsic implementiert wird. Dh, der Compiler "erzeugt" den Code für die Funktion erst, wenn er die entsprechende Stelle übersetzt. Das Ergebns des Codes hängt dann von den begleitenden Umständen ab, wie zB Alignment oder verwendeten Registern. Man kann so eine intrinsic Funktion auch wie eine in den Compiler eingebaute inline Funktion betrachten. Früher hat man versucht, solche simplen Funktionen selbst zu schreiben, um zB die Vorteile von CPU Befehlserweiterungen zu nutzen. Heute macht das keinen Sinn mehr, da moderne Compiler ausreichend Optionen für solche Erweiterungen anbieten und diese dann auch entsprechend nutzen. Mach dir also nicht erst die Mühe, so eine Funktion selbst zu schreiben. Du wirst dadurch sehr wahrscheinlich nichts gewinnen. Benutze einfach memcpy, und gut ist.
Ansonsten, was die Optimierung deines ctors betrifft, falls deine Elemente PODs sind und plain gespeichert werden, kannst du memcpy benutzen. Etwas schnelleres wirst du kaum finden.