He buscado algunos comandos genéricos que muestran/manipulan las extensiones del kernel. kextstat
me llamó la atención y en base a su salida, la 4ª columna es
El número de bytes de memoria del kernel que ocupa el kext. Si es cero, el kext es una parte incorporada del núcleo que tiene un registro como kext para resolver dependencias entre kexts.
El único problema era que su tamaño estaba en hexadecimal. Así que convertí el hexadecimal a decimal e imprimí sólo la información relevante (como el id del paquete de kext).
kextstat -l -k | awk '{n = sprintf("%d", $4); print n, $6}' | sort -n
Desglosando:
kextstat -l -k
- imprimir una lista de kexts cargados no incorporados
| awk '{n = sprintf("%d", $4); print n, $6}'
- canalizar la salida a awk
, convertir la 4ª columna "tamaño" de hexadecimal a decimal, imprimir eso y el id del paquete de kext.
| sort -n
- canalizar la salida a sort
y ordenar la lista utilizando la comparación numérica (para que "10" no sea menor que "1 ").
Puede canalizar la salida a tail -n 3
para conseguir los 3 mejores acaparadores de memoria. Aquí están los míos:
1757184 com.apple.nvidia.driver.NVDAGK100Hal
2572288 com.apple.nvidia.driver.NVDAResman
3923968 com.apple.driver.AirPort.Brcm4360
Actualización: también se puede canalizar esto a grep -v com.apple
para ver qué kexts que no son de Apple están cargados.
1 votos
El kernel_task es un proceso - ¿qué quieres decir con "los procesos están contribuyendo"
1 votos
¿Te refieres al proceso kernel_task que utiliza 400 MB de memoria física? Aquí está usando 2.6GB, así que 400MB no suena tan mal.
0 votos
Supongo que en realidad me refiero a qué archivos .kext están relacionados. Entiendo que son archivos de configuración para varios programas en Mac OS pero algunos pueden ser innecesarios. ¿Cómo puedo saber cuáles son? ¿Puedo desinstalar los que ya no sean necesarios?