Ho cercato alcuni comandi generici che visualizzano / manipolano le estensioni del kernel. kextstat
ha attirato la mia attenzione e in base al suo output, la quarta colonna è
The number of bytes of kernel memory that the kext occupies. If this is zero, the kext is a built-in part of the kernel that has a record as a kext for resolving dependencies among kexts.
L'unico problema era che la sua dimensione era esadecimale. Quindi ho convertito l'esadecimale in decimale e stampato solo le informazioni rilevanti (come l'id del pacchetto kext).
kextstat -l -k | awk '{n = sprintf("%d", $4); print n, $6}' | sort -n
Abbattilo:
-
kextstat -l -k
: stampa un elenco di kex non incorporati caricati
-
| awk '{n = sprintf("%d", $4); print n, $6}'
- reindirizza l'output a awk
, converti la quarta colonna "dimensione" da esadecimale a decimale, stampala e l'id del pacchetto kext.
-
| sort -n
- reindirizza l'output al comando sort
e ordina l'elenco utilizzando il confronto numerico (in modo che "10" non sia inferiore a "1").
Puoi reindirizzare l'output a tail -n 3
per ottenere i migliori hogger di memoria 3. Ecco i miei:
1757184 com.apple.nvidia.driver.NVDAGK100Hal
2572288 com.apple.nvidia.driver.NVDAResman
3923968 com.apple.driver.AirPort.Brcm4360
Aggiornamento: puoi anche reindirizzare questo valore a grep -v com.apple
per vedere quali kex non-apple sono stati caricati.