Für iOS-Apps in dem Simulator ausgeführt wird, offensichtlich der Simulator ist ein Mac OS X-Programm, so kann es Verwenden Sie DTrace, um alles zu überwachen, was der Simulator macht.
Für iOS-Apps, die auf einem iPhone ausgeführt werden, stimme ich zu, dass die Dokumentation nur einen kleinen Einblick in die Vorgänge bietet. Es lädt wahrscheinlich Überwachungscode in den Zielprozess auf iOS (entweder durch Hinzufügen des Codes zur Kompilierzeit oder durch Verknüpfen zur Laufzeit) oder es gibt einen "traditionellen Debugger", der auf iOS läuft, gegen den Zielprozess, um die Ablaufverfolgung zu implementieren. Dies sind die einzigen Optionen, wenn für die Verwendung von DTrace keine Kernel-Ebene unterstützt wird.
Ich habe noch nie Instrumente benutzt, aber die Hauptsache ist, dass sie scheinbar OS-Level-Statistiken über I/O sammeln können, die normalerweise ohne DTrace nicht messbar wären. Ich bin nicht sicher, weil ich es nicht benutzt habe, aber es ist möglich, dass diese Statistiken nur I/O von leicht zu erkennenden Einstiegspunkten verfolgen (dh I/O-bezogene Syscalls vom spezifischen Zielprozess), oder dass es solche gibt andere iOS-spezifische Statistikquellen, die vom Betriebssystem veröffentlicht werden. Zum Beispiel können viele Systemstatistiken von Mac OS X durch den Aufruf sysctl
abgerufen werden. Abhängig davon, welche Statistiken tatsächlich gesammelt werden, könnten Instrumente einfach einfache Zähler wie diese verwenden, um die meiste Arbeit zu erledigen.
Wenn Sie wirklich entschlossen sind, die Antwort zu finden, wäre es eine gute DTrace-Herausforderung, dieses Problem mit DTracing Instruments selbst zu lösen. Viel Glück :-)