تم تطوير AppleTrace لتحليل أداء التطبيق على iOS .
>> لقد طورت بديلًا يسمى Messier وهو أسهل بكثير في الاستخدام. سائدا

اذهب إلى ويكي
git clone https://github.com/everettjf/AppleTrace.git
للإصدار المستقر ، يرجى الرجوع إلى الإصدارات
trace.json . (قد يكون هناك أكثر من ملف تتبع واحد.)trace.html استنادا إلى trace.json .انظر أدناه لمزيد من التفاصيل.
حتى الآن ، هناك طريقتان لإنشاء بيانات تتبع.
(1) قسم مجموعة يدوي.
استدعاء APTBeginSection في بداية الطريقة ، و APTEndSection في نهاية الطريقة. بالنسبة للطريقة C الهدف (ما إذا كانت طريقة المثيل أو طريقة الفئة) ، هناك Macro APTBegin و APTEnd لسهولة الترميز.
void anyKindsOfMethod{
APTBeginSection("process");
// some code
APTEndSection("process");
}
- (void)anyObjectiveCMethod{
APTBegin;
// some code
APTEnd;
}
نموذج التطبيق هو sample/ManualSectionDemo .
(2) مكتبة ديناميكية تربط جميع OBJC_MSGSEND.
ربط جميع أساليب OBJC_MSGSEND (استنادًا إلى الخطاف). هذا يدعم ARM64 فقط تحت تصحيح الأخطاء (LLDB).
نموذج التطبيق هو sample/TraceAllMsgDemo .
باستخدام أي أنواع من الطريقة ، نسخ <app's sandbox>/Library/appletracedata من المحاكاة/RealDevice.

دمج/معالجة مسبق appletracedata .
python merge.py -d <appletracedata directory>
سيؤدي ذلك إلى إنتاج trace.json في دليل AppletRedata.
الآن !!! ، يمكنك إسقاط trace.json في Chrome's chrome://tracing . أو إذا كنت ترغب في إنشاء نتيجة HTML ، تابع إلى الخطوة الرابعة.
تشغيل sh get_catapult.sh للحصول على مصدر المنجنيق.
ثم إنشاء trace.html باستخدام catapult .
python catapult/tracing/bin/trace2html appletracedata/trace.json --output=appletracedata/trace.html
open trace.html
Trace.html يدعم الكروم فقط
فتح sampledata/trace.html باستخدام الكروم.
欢迎关注微信订阅号 , 更多有趣的性能优化点点滴滴。
