W Xcode's Instruments znajduje się narzędzie o nazwie Counters, które udostępnia informacje o niskim poziomie liczników dostarczone przez procesor, takie jak liczba wykonanych instrukcji lub liczba chybienia cache:Wartości rekordów liczników monitorowania wydajności (zdarzeń PM) na OS X bez instrumentów
ta jest podobna do syscall Linux perf_event_open
wprowadzonym w systemie Linux 2.6.32. W Linuksie mogę użyć perf_event_open
, a następnie uruchomić/zatrzymać profilowanie wokół sekcji mojego kodu, którą jestem zainteresowany. Chciałbym nagrać ten sam typ statystyk na OS X: licząc instrukcje (itp.), Że pewien kawałek kodu, a otrzymanie wyniku w sposób zautomatyzowany. (Nie chcę używać GUI Instruments do analizy danych.)
Czy są jakieś API, które na to pozwalają (np. Używając dtrace lub podobnego)? Z niektórych wyników wyszukiwania wynika, że prywatna wersja AppleProfileFamily.framework może wymagać odpowiednich haczyków, ale nie jest jasne, w jaki sposób połączyć się z nią lub jej używać.
jeden potencjalny rozwiązaniem byłoby użycie kodu Intel PMC, który ujawnia te informacje (http://www.campos.cc/blog/2014/03/15/using-intel-performance-monitor-on-mac-os-x), ale wydaje się, że nie dostarcza ona informacji o procesie, a jedynie sumy, które są mniej przydatne dla mnie. –
Inżynier Apple Kris Markel mówi na Twitterze: "W tej chwili nic nie jest dostępne. Proszę złożyć wniosek o ulepszenie poprzez bugreport.apple.com." (https://twitter.com/existopher/status/644943616889126912) –
[PAPI można skompilować na OS X] (http://icl.cs.utk.edu/papi/forum/viewtopic.php?f=2&t= 1274). Niestety, liczniki sprzętu nie są obsługiwane na tej platformie, a jedynie zdarzenia oprogramowania. To czyni go mniej użytecznym. – Sjlver