AppleTrace wurde entwickelt, um die Leistung der App auf iOS zu analysieren.
>> Ich habe einen Ersatz namens Messier entwickelt, der viel einfacher zu bedienen ist. :)

Geh nach Wiki
git clone https://github.com/everettjf/AppleTrace.git
Für eine stabile Veröffentlichung finden Sie auf Veröffentlichungen
trace.json zusammen. (Es kann mehr als 1 Trace -Datei geben.)trace.html basierend auf trace.json .Weitere Informationen finden Sie weiter unten.
Bisher gibt es 2 Möglichkeiten zum Generieren von Spurendaten.
(1) Manuelles Set -Abschnitt.
Rufen Sie APTBeginSection zu Beginn der Methode und am Ende der Methode APTEndSection . Für die objektive C -Methode (ob Instanzmethode oder Klassenmethode) gibt es APTBegin und APTEnd -Makro für eine einfache Codierung.
void anyKindsOfMethod{
APTBeginSection("process");
// some code
APTEndSection("process");
}
- (void)anyObjectiveCMethod{
APTBegin;
// some code
APTEnd;
}
Die Probe -App ist sample/ManualSectionDemo .
(2) Dynamische Bibliothek, die alle OBJC_MSGSend anhält.
Haken Sie alle OBJC_MSGSend -Methoden (basierend auf Hookzz). Dies unterstützt nur ARM64 unter Debugger (LLDB).
Die Probe -App ist sample/TraceAllMsgDemo .
Kopieren Sie <app's sandbox>/Library/appletracedata aus Simulator/Redevice, indem Sie eine Methode unter Verwendung einer Methode kopieren.

Fusion/Preprocess die appletracedata .
python merge.py -d <appletracedata directory>
Dies erzeugt trace.json im AppletRacedata -Verzeichnis.
trace.json chrome://tracing Oder wenn Sie ein HTML -Ergebnis generieren möchten, fahren Sie mit dem 4. Schritt fort.
Führen Sie sh get_catapult.sh aus, um eine Katapultquelle zu erhalten.
Erstellen Sie dann trace.html mit catapult .
python catapult/tracing/bin/trace2html appletracedata/trace.json --output=appletracedata/trace.html
open trace.html
Trace.html unterstützen nur Chrome
Offene sampledata/trace.html mit Chrom.
欢迎关注微信订阅号 , 更多有趣的性能优化点点滴滴。 更多有趣的性能优化点点滴滴。
