5 Stimmen

mmap vs sbrk, Leistungsvergleich

Welcher dieser Anrufe ist im Durchschnitt schneller? Ich habe gehört, dass mmap ist bei kleineren Zuweisungen schneller, aber ich habe noch keinen Vergleich zwischen den beiden gehört. Jegliche Informationen über die Leistung dieser Systeme wären schön.

12voto

Sie sollten dies mit einer bestimmten Implementierung kennzeichnen (wie linux ), da die Antwort sicherlich von der Implementierung abhängt. Im Moment gehe ich von Linux aus, da es am weitesten verbreitet ist.

In diesem Sinne, brk ist theoretisch besser optimierbar, und in der Praxis läuft es auf meinem Rechner etwa 10 % schneller. Wenn ich eine Seite zuweise, erhalte ich diese Zeiten:

  • brk min 2550 Zyklen, typisch 2650 Zyklen
  • mmap min 2700 Zyklen, typisch 2800 Zyklen

Ich erinnere mich, etwas gehört zu haben, das in etwa so lautete brk die Möglichkeit, das Sperren der mmap Semaphor, was die Diskrepanz erklären würde.

Nota: Ich habe diese Zeiten aktualisiert, nachdem ich meinen Test so angepasst hatte, dass ich vor der Zeitmessung einen Dummy-Aufruf tätigte, um sicherzustellen, dass der Code vollständig im Cache gespeichert ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X