In Superuser mit einer akzeptierten Antwort :
Auch im Superuser:
– und aus der ersten Antwort dort verstehen wir, dass der Wert des Boot-Arguments vm_compressor
nicht mit dem Wert der sysctl-Variablen übereinstimmt vm.compressor_mode
.
In Apple Open Source für OS X 10.9, Mavericks; in xnu-2422.1.72:
In vm_compressor.c:
/*
* vm_compressor_mode has a heirarchy of control to set its value.
* boot-args are checked first, then device-tree, and finally
* the default value that is defined below. See vm_fault_init() for
* the boot-arg & device-tree code.
*/
Auf einem MacBookPro5,2 mit 8 GB Speicher finde ich:
sh-3.2$ sysctl -a vm.compressor_mode
vm.compressor_mode: 4
In der Nähe des Fußes von vm_pageout.h:
extern int vm_compressor_mode;
extern int vm_compressor_thread_count;
#define VM_PAGER_DEFAULT 0x1 /* Use default pager. */
#define VM_PAGER_COMPRESSOR_NO_SWAP 0x2 /* In-core compressor only. */
#define VM_PAGER_COMPRESSOR_WITH_SWAP 0x4 /* In-core compressor + swap backend. */
#define VM_PAGER_FREEZER_DEFAULT 0x8 /* Freezer backed by default pager.*/
#define VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP 0x10 /* Freezer backed by in-core compressor only i.e. frozen data remain in-core compressed.*/
#define VM_PAGER_FREEZER_COMPRESSOR_WITH_SWAP 0x20 /* Freezer backed by in-core compressor with swap support too.*/
#define VM_PAGER_MAX_MODES 6 /* Total number of vm compressor modes supported */
#define DEFAULT_PAGER_IS_ACTIVE ((vm_compressor_mode & VM_PAGER_DEFAULT) == VM_PAGER_DEFAULT)
#define COMPRESSED_PAGER_IS_ACTIVE (vm_compressor_mode & (VM_PAGER_COMPRESSOR_NO_SWAP | VM_PAGER_COMPRESSOR_WITH_SWAP))
#define DEFAULT_FREEZER_IS_ACTIVE ((vm_compressor_mode & VM_PAGER_FREEZER_DEFAULT) == VM_PAGER_FREEZER_DEFAULT)
#define DEFAULT_FREEZER_COMPRESSED_PAGER_IS_ACTIVE (vm_compressor_mode & (VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP | VM_PAGER_FREEZER_COMPRESSOR_WITH_SWAP))
Ist es möglich, einen anderen Modus als 4 für komprimierten Speicher zu aktivieren ?
Wenn ja, können wir eine einfache englische Erklärung der Modi finden?
Ich bin mir der FREEZER-Optionen nicht ganz sicher, außer dass eine FREEZER_COMPRESSOR-Option Swap verwendet (nutzt freien Speicherplatz auf einer Festplatte), wenn der RAM niedrig oder verbraucht ist, während die andere dies nicht tut.
Was ich denke, ist, dass die FREEZER-Optionen zum Verwalten des Speichers für eingefrorene Prozesse dienen. Vielleicht ist das etwas Experimentelles, um es in Kombination mit App Nap zu verwenden? Ich denke, das war etwas, was sie vor ein paar Jahren mit iOS getestet haben.
Was ich weiß, ist, dass Option 1 keine Komprimierung verwendet und die altmodische OS X-Speicherverwaltung ist, mit der wir alle besser vertraut sind. Wenn Sie Probleme haben, von denen Sie vermuten, dass sie mit der Speicherkomprimierung zusammenhängen, können Sie diese Einstellung ausprobieren.
Option 2 verwendet komprimierten Speicher ohne Auslagerung (kein Schreiben auf die Festplatte, wenn der RAM niedrig oder erschöpft ist).
Option 4 verwendet sowohl Komprimierung als auch Swap.
Option 8 verwendet, was auch immer der FREEZER ist, unterstützt durch die Implementierung von Option 1.
Ich kann keinen Kommentar hinzufügen, also schreibe ich als Antwort: Sieht so aus, als wäre der Gefrierschrank Apples patentierte Technologie, und wenn Sie sie verwenden VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP
, sollten Sie nicht auch den Kompressor verwenden ? (siehe Kompressor ist vorhanden, aber nicht aktiviert)
Um die Frage zu beantworten, können Sie Folgendes haben:
jksoegaard
poige