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.
Antwort
Zu viele Anzeigen?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 Zyklenmmap
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.