Frage

Ich bin auf der Suche nach Informationen über die glibc und in welchem Umfang es benutzt SSE Funktionalität.

Wenn es optimiert ist, kann ich es verwenden out-of-the-box?

Sagen, ich bin mit einer der größeren Linux-Distributionen, ich gehe davon aus, dass seine glibc kompiliert werden so allgemein wie möglich und so handlich wie möglich, also nicht optimiert?

Ich bin insbesondere daran interessiert, die Funktionen memcpy und memcmp und wie diese Funktionen so schnell wie möglich.

War es hilfreich?

Lösung

glibc-2.8 nicht verwenden SSE für memcpy oder memcmp überhaupt(x86 oder x86_64) - es nutzt einige hand-schriftliche Montage vermeidet alles, was nicht unterstützt auf allen CPUs der Familie.In glibc 2.10, eine neue Art von Umzug, STT_GNU_IFUNC unterstützt werden, was bessere Optimierungen basierend auf CPU-Unterstützung möglich.

Andere Tipps

Wenn Sie kompilieren, mit der höchsten Optimierung der Einstellungen, memcpy und memcmp ersetzt werden könnten mit Interna durch den compiler und rufen niemals glibc überhaupt.Dann die mcpu und März compiler-Optionen wählen Sie den schnellsten code.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top