Warum ist "Real Memory" größer als "Memory" für den Kernel_task-Prozess?

Was genau bedeutet die Speicherspalte des Aktivitätsmonitors?

Wie kommt es, dass in der Beispielsituation unten (von einem macOS High Sierra-System) die Real Mem-Spalte größer ist als die Memory-Spalte?

Gemäß einer vorherigen Frage Wie wird die Spalte "Speicher" im Aktivitätsmonitor berechnet? , könnte man erwarten, dass Real Mem immer kleiner oder gleich Memory sein sollte, was anscheinend nicht immer der Fall ist.

Aktivitätsmonitor

Bearbeiten: Dieses Verhalten gilt nicht nur für die Kernel-Task, sondern auch für andere Prozesse. Im folgenden Screenshot sehen wir beispielsweise ein paar Google Chrome-Helfer, die das gleiche Verhalten aufweisen, wobei Real Mem > Memory. Dasselbe kann man bei Dock , Notes , Spotlight , Facetime sehen .

Geben Sie hier die Bildbeschreibung ein

Wow - Chrome muss Speicher ausgiebig lecken. Schafft man das in einem reproduzierbaren Fall oder braucht man stundenlanges Surfen, um den Speicherzustand für die zahlreichen Hilfs-Apps zu bekommen?
Ja sehr reproduzierbar. Und das passiert nicht nur Chrome, sondern vielen anderen Programmen wie Dock , Notes , Spotlight , Activity Monitor selbst. Siehe aktualisierten Screenshot oben. Wenn dies also kein Problem des gegebenen Systems ist, vermute ich, dass uns etwas in Apples Definition von Real mem fehlt .

Antworten (1)

Der Kernel ist etwas Besonderes - es ist das Mikrosystem, das tatsächlich Speicher zuweist und den virtuellen Speicher ausführt. Sie können einfach davon ausgehen, dass 3,60 GB von Ihrem Kernel beansprucht werden und dass 1,86 GB davon dem entsprechen, was die Aufgabe selbst benötigt, und der Rest der Overhead / die Zuweisungen sind, um alle Anforderungen zu unterstützen, die an den Mach-Kernel gestellt werden.

Jede andere Zeile im Aktivitätsmonitor verhält sich wie erwartet und summiert sich ziemlich klar, wenn Sie die Kernel-Nummern ignorieren:

  • Die gesamte Zuweisung des virtuellen Speichers ist immer am größten. Das meiste davon ist nicht zugeordnet / nicht physisch zugeordnet und in keiner der aufgeführten Kategorien enthalten.
  • Real Mem ist die nicht geteilte und nicht komprimierte Zuordnung zu dieser Aufgabe.
  • Der komprimierte Speicher ist der Teil des Gesamtspeichers, der komprimiert wurde, bevor er aktiv gespeichert wurde.
  • Private und Shared sind beides reale Speichernutzung, geben aber an, ob andere Prozesse diese Zuweisung gegenüber der Gesamtmenge möglicherweise ebenfalls benötigen oder dafür verantwortlich sind.

Für eine umfassendere Diskussion der Kernel_task enthält diese Frage einige großartige Links und Diskussionen darüber, wie sie sich kernel_taskso sehr von den übrigen Prozessen unterscheidet, die Sie unter macOS sehen.

Diese Beschreibung der speziellen Funktionalität des Kernels macht Sinn. Wie kommt es jedoch, dass andere Prozesse das gleiche Verhalten erfahren? (Siehe aktualisierte Fragenbeschreibung mit zusätzlichem Screenshot). Danke.