mmap und brk
-
Hallo, wir haben Performancetests für ein von uns geschriebenes Programm durchgeführt.In diesem Programm wird oft dynamisch Speicher angefordert und wieder zurückgegeben. Dabei ist uns folgendes aufgefallen:
Ab einer bestimmten Größe zu allokirenden Speichers (128kB) nimmt die Geschwindigkeit des Programmes stark ab.
Dies könnte nach unseren Vermutungen daran liegen, dass ab dieser Größe der Aufruf mmap() statt brk() vorgenommen wird.
Seltsamerweise steigt die Geschwindigkeit wieder ab 256 kB auf das normale Tempo an.
(Testreihen, bei denen mmap() deaktiviert ist, sind noch nicht fertig, aber die bisherigen Ergebnisse lassen vermuten, dass keine Geschwindigkeitsschwankungen auftreten, auch im Quellcode (C) ist keine Sonderbehandlung für bestimmte Speichergrößen vorgesehen)
Kann man das irgendwie erklären?