fundo
Em Superusuário, com uma resposta aceita :
Também em Superusuário:
- e desde a primeira resposta, entendemos que o valor do argumento de inicializaçãovm_compressor
não corresponde ao valor da variável sysctl vm.compressor_mode
.
No código-fonte aberto da Apple para OS X 10.9, Mavericks; no xnu-2422.1.72:
No 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.
*/
Em um MacBookPro5,2 com 8 GB de memória, encontro:
sh-3.2$ sysctl -a vm.compressor_mode
vm.compressor_mode: 4
Perto do pé de 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))
Questão
É possível ter um modo ativado diferente de 4 para memória compactada ?
Em caso afirmativo, podemos encontrar uma explicação clara dos modos em inglês?
macos
mavericks
memory
virtual-memory
memory-pressure
Graham Perrin
fonte
fonte
Respostas:
Não tenho certeza absoluta das opções FREEZER, exceto uma opção FREEZER_COMPRESSOR usa swap (utiliza espaço livre em um disco) quando a RAM está baixa ou gasta, enquanto a outra não.
O que eu acho é que as opções do FREEZER são para gerenciar a memória de processos congelados. Talvez isso seja algo experimental, para ser usado em combinação com o App Nap? Eu acho que isso era algo que eles estavam testando com o iOS alguns anos atrás.
O que sei é que a opção 1 não usa compactação e é o antiquado gerenciamento de memória do OS X com o qual estamos mais familiarizados. Se você estiver tendo problemas suspeitos relacionados à compactação de memória, tente esta configuração.
A opção 2 usa memória compactada sem troca (sem gravação no disco quando a RAM está baixa ou gasta).
A opção 4 usa compactação e troca.
A opção 8 usa o que quer que o FREEZER seja, apoiado pela implementação da opção 1.
fonte
Não é possível adicionar um comentário, por isso vou escrever como resposta: parece que o freezer é a tecnologia patenteada da Apple e, se você usá-
VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP
lo, não deve usar o compressor também? (veja, o compressor está presente, mas não está ativado)Respondendo à pergunta, você pode ter:
fonte