Cuando intento ejecutar el comando de purga, siempre aparece el mismo error.
[ERROR] <CPDevice.c:3816> Unable to create new counter client.
[ERROR] <CPOSX.c:1172> Unable to get user client so as to poke the kernel.
Unable to purge disk buffers, error #-2.
Lo he intentado con y sin sudo, inicialmente pensé que tal vez no podía hacerlo debido a que no tenía el acceso adecuado, y simplemente no se programaron en una verificación de permisos. Aunque es el mismo error.
Tengo una instalación de Xcode dual, que creo que puede ser el problema aquí. Tengo 3.2.6 instalado en un directorio personalizado (/ Xcode 3) y tengo Xcode 4.6.3 de la Mac App Store. He instalado las herramientas de línea de comandos más recientes (2013.4) desde Xcode 4. Estoy ejecutando OS X 10.7.4 Lion.
Antes de que alguien me diga que debería dejar que el sistema operativo administre la memoria inactiva solo, porque lo hace bien, no, no lo hace. En lo mas minimo. Normalmente funciona lo suficientemente bien como para no molestarme. Pero cada vez que uso cualquier tipo de VM, encuentro problemas con la memoria que nunca se libera.
Por ejemplo, puedo iniciar una instancia de una VM de emulación. Utilizará unos 600 MB de memoria. Cuando termino la emulación por completo, la memoria no se libera. Además de eso, si vuelvo y vuelvo a ejecutar la misma emulación, los 600 MB inactivos no se reutilizan como se podría esperar. No, simplemente se sienta allí. Y otros 600 de la piscina gratis se acostumbran. Y cuando se termina esa segunda emulación, ahora tengo 1.2 GB de memoria inactiva. Ahora normalmente esto estaría bien, si la memoria inactiva se liberara cuando se usara toda la memoria libre. Pero no lo hace. Simplemente se sienta allí y nunca se libera. Se cambiará al disco en su lugar.
Este problema es particularmente molesto con las máquinas virtuales de virtualización que usan 4 GB o incluso más de RAM dentro de mi uso normal. Reinicie esas cosas más de una vez y las cosas nuevas se vuelven lentas a un rastreo debido al intercambio de discos.
Solía usar el comando de purga todo el tiempo en 10.5 Leopard con Xcode 3.1.4, y los problemas en Leopard no estaban tan mal con la administración automática de la memoria. Acabo de usar la purga para obtener más de una pizarra limpia sin tener que reiniciar. Ni siquiera puedo hacer eso ahora. Y a diferencia de lo que algunas personas le dirían, es un problema grave.
Cualquier idea sería apreciada. Una cosa más. He usado xcode-select
para seleccionar Xcode 4.6.3 en lugar de 3.2.6. Solo uso 3.2.6 para desarrollo y compilación. Sin embargo, Macports, Homebrew y algunas otras cosas requieren que se instale y seleccione Xcode 4, que es la única razón por la que lo tengo. Pero si recuerdo correctamente, la purga tampoco funcionó cuando seleccioné Xcode 3 en su lugar.