Come registrare i dati di utilizzo della CPU e della memory

Voglio profilare l'esecuzione di un programma per vedere cosa in particolare lo rallenta – se colpisce un tappo di memory o se la mia CPU non è abbastanza potente.

Activity Monitor (quello che viene fornito con OS X) è ottimo, ma non credo che possa registrare i dati (vale a dire che si può vedere solo l'utilizzo della RAM corrente e della CPU, non l'utilizzo del passato).

Voglio che l'uso sia suddiviso per il process se ansible, quindi posso controllare per altre cose che spiking in uso.

Conosci di un'applicazione che ha questa funzionalità?

Potresti voler guardare la traccia OS . Non è l'app più stabile e affidabile ma gratuito e penso che dovrebbe fare le cose che ti serve. Per trovare più di noi puoi controllare gli screenshot sul sito dello sviluppatore.

Per vedere se la CPU o la memory è il problema si potrebbe iniziare con iostat e vm_stat Le eseguire questi da un terminal.

Per ottenerlo in modo continuo è necessario eseguirlo come

iostat n 

where n è il numero di secondi tra le esecuzioni.

Se si desidera guardare l'utilizzo della memory, si vorrebbe

 vm_stat n 

Se si desidera get informazioni su un determinato programma, si dovrebbe probabilmente scrivere uno script che ha chiamato qualcosa di simile

 ps wwaux | grep your_program_name 

ancora ed ancora.