Ich möchte perf
ein 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).
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 top
und vm_stat
sich dann mit bestimmten Prozessen vertiefen, indem Sie entweder dtrace
oder 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.
vm_stat
, aber es gibt mir nur die Anzahl der Seitenfehler pro Sekunde, verfolgt also nichts. Das gleiche mit top
. Wenn dtrace
das möglich ist, wäre ein Beispiel hilfreich.dtrace
ist 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
Fahrrad