2009-05-08 4 views
1

Wenn Sie mmap verwenden, um einige anonyme mem zuzuordnen, setzen wir oft die Startadresse als 0/null, so dass mmap die Startadresse selbst herausfinden wird. Und um die Startadresse zu erhalten, wird es funktionieren, dachte der gesamte virtuelle Speicherraum, um ein Loch zu finden, das den Futter von Mem zugewiesen werden könnte. Ich denke, das wird als Benutzer-CPU anstelle von sys CPU berechnet. Wenn der virtuelle Speicher fragmentiert ist, dann wird die Zeit, um die Startadresse zu finden, mehr Benutzer-CPU verwenden, ist mein Verständnis korrektwird mmap benutzer cpu anstelle der gesamten sys cpu verwenden? (solaris)

Antwort

6

Ich glaube nicht, dass dies richtig ist. Die im mmap-Systemaufruf verbrachte Zeit wird als Systemzeit gezählt. Die Zeit, ein ausreichend großes Adressraumfenster zu finden und die Zuordnungen einzurichten, sollte jedoch trivial sein.