Negli strumenti Xcode, esiste uno strumento chiamato Counters che espone informazioni di contatore di basso livello fornite dalla CPU, come il numero di istruzioni eseguite o il numero di cache miss:Registra i valori dei contatori di Performance Monitor (eventi PM) su OS X senza strumenti
Questo è simile alla chiamata di sistema Linux perf_event_open
introdotto in Linux 2.6.32. Su Linux, posso usare perf_event_open
quindi avviare/interrompere la profilazione intorno alla sezione del mio codice che mi interessa. Mi piacerebbe registrare lo stesso tipo di statistiche su OS X: contando le istruzioni (ecc.) Di un certo pezzo prende il codice e ottiene il risultato in modo automatico. (Non voglio utilizzare la GUI dello strumento per analizzare i dati.)
Esistono API che consentono questo (ad es. Utilizzando dtrace o simile)? Da un po 'di ricerca suona come il privato AppleProfileFamily.framework potrebbe avere i ganci necessari, ma non è chiaro come fare per il collegamento o l'utilizzo.
Un potenziale la soluzione qui sarebbe utilizzare il kext Intel PMC che espone queste informazioni (http://www.campos.cc/blog/2014/03/15/using-intel-performance-monitor-on-mac-os-x), ma non sembra fornire informazioni per processo, solo totali, che sono meno utili per me. –
L'ingegnere di Apple Kris Markel dice su Twitter: "Al momento non è disponibile nulla. Per favore invia una richiesta di miglioramento tramite bugreport.apple.com." (https://twitter.com/existopher/status/644943616889126912) –
[PAPI può essere compilato su OS X] (http://icl.cs.utk.edu/papi/forum/viewtopic.php?f=2&t= 1274). Sfortunatamente, i contatori hardware non sono supportati su questa piattaforma, solo eventi software. Questo lo rende molto meno utile. – Sjlver