Gibt es ein Perf-Profiler-Tool für Mac, um alle Seitenfehler zu verfolgen?

Ich möchte perfein Kernel-Profiling-Tool für Linux installieren.

Grundsätzlich versuche ich, alle Seitenfehler zu verfolgen , also führe ich Äquivalent zu:

sudo perf record -e page-faults -ag

Ist es möglich, das obige Tool auf einem Mac zu installieren/zu verwenden? Wenn nicht, was ist das äquivalente Tool, um ähnliche Ergebnisse zu erzielen (Verfolgen aller Seitenfehler mit Stacktraces).

Wenn Sie näher erläutern möchten, was Sie letztendlich tun möchten, können wir einen XY-Problemtypaustausch vermeiden . Ich werde weitermachen und nach Ihrer Lösung fragen, falls das eigentlich alles ist, was Sie wissen wollten.

Antworten (1)

Nein - es gibt keinen Linux-Kernel zum Profilieren unter OS X - also ist dieses Tool ein Fisch aus dem Wasser. OS X wird wahrscheinlich mit allem geliefert, was Sie brauchen.

Unter macOS / OS X wird ein mach_kernel verwendet. Es ist ausführlich dokumentiert unter: https://developer.apple.com/library/prerelease/content/documentation/Darwin/Conceptual/KernelProgramming/About/About.html

Darüber hinaus können Sie die BSD-basierte Unix-Schicht mit den mitgelieferten Befehlszeilentools gut profilieren. Es hängt wirklich davon ab, welche Vorgänge oder Aspekte der Systemleistung Sie messen oder debuggen möchten.

Zum spezifischen Thema der Seitenfehler können Sie kumulative Statistiken von abrufen topund vm_statsich dann mit bestimmten Prozessen vertiefen, indem Sie entweder dtraceoder Instruments verwenden - ein kostenloses Tool, das Teil von Xcode im App Store ist und über eine grafische Oberfläche zum Profilieren der Systemaufrufe pro Prozess verfügt oder als System.

Ich bin mir dessen bewusst vm_stat, aber es gibt mir nur die Anzahl der Seitenfehler pro Sekunde, verfolgt also nichts. Das gleiche mit top. Wenn dtracedas möglich ist, wäre ein Beispiel hilfreich.
@kenorb Lassen wir dies eine allgemeine Antwort auf eine allgemeine Frage. Wenn Sie mit der Sonde eine enge Frage zu OS X stellen möchten, dtraceist diese möglicherweise beantwortbar. Ich würde wahrscheinlich Instrumente verwenden, um Ihr Programm zu verfolgen, da es leicht herauszufinden ist, ob Sie es überhaupt brauchendtrace
Mal sehen, ob dann noch jemand Tipps hat. Danke @kenorb