AppleTrace dikembangkan untuk menganalisis kinerja aplikasi di iOS .
>> Saya telah mengembangkan pengganti yang disebut Messier yang jauh lebih mudah digunakan. :)

Pergi ke Wiki
git clone https://github.com/everettjf/AppleTrace.git
Untuk rilis yang stabil, silakan merujuk ke rilis
trace.json . (Mungkin ada lebih dari 1 file jejak.)trace.html berdasarkan trace.json .Lihat di bawah untuk detail lebih lanjut.
Sampai sekarang, ada 2 cara untuk menghasilkan data jejak.
(1) Bagian Set Manual.
Hubungi APTBeginSection di awal metode, dan APTEndSection di akhir metode. Untuk metode C obyektif (apakah metode instance atau metode kelas), ada APTBegin dan APTEnd makro untuk pengkodean mudah.
void anyKindsOfMethod{
APTBeginSection("process");
// some code
APTEndSection("process");
}
- (void)anyObjectiveCMethod{
APTBegin;
// some code
APTEnd;
}
Aplikasi sampel adalah sample/ManualSectionDemo .
(2) Perpustakaan Dinamis Mengaitkan Semua OBJC_MSGSEND.
Menghubungkan semua metode objc_msgsend (berdasarkan hookzz). Ini hanya mendukung ARM64 di bawah Debugger (LLDB).
Aplikasi sampel adalah sample/TraceAllMsgDemo .
Menggunakan segala jenis metode, salin <app's sandbox>/Library/appletracedata dari Simulator/RealDevice.

Gabungkan/Preprocess the appletracedata .
python merge.py -d <appletracedata directory>
Ini akan menghasilkan trace.json di direktori AppletRacedata.
Sekarang !!!, Anda bisa menjatuhkan trace.json ke Chrome's chrome://tracing . Atau jika Anda ingin menghasilkan hasil HTML, lanjutkan ke langkah ke -4.
Jalankan sh get_catapult.sh untuk mendapatkan sumber ketapel.
Kemudian hasilkan trace.html menggunakan catapult .
python catapult/tracing/bin/trace2html appletracedata/trace.json --output=appletracedata/trace.html
open trace.html
trace.html hanya mendukung chrome
Buka sampledata/trace.html menggunakan chrome.
欢迎关注微信订阅号 , 更多有趣的性能优化点点滴滴。
