AppleTrace ได้รับการพัฒนาสำหรับการวิเคราะห์ประสิทธิภาพของแอพบน iOS
>> ฉันได้พัฒนาสิ่งทดแทนที่เรียกว่า Messier ซึ่งใช้งานง่ายกว่ามาก -

ไปที่วิกิ
git clone https://github.com/everettjf/AppleTrace.git
สำหรับการเปิดตัวที่มั่นคงโปรดดูที่เผยแพร่
trace.json (อาจมีไฟล์ติดตามมากกว่า 1 ไฟล์)trace.html ตาม trace.jsonดูรายละเอียดเพิ่มเติมด้านล่าง
จนถึงขณะนี้มี 2 วิธีในการสร้างข้อมูลการติดตาม
(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 ทั้งหมด (ขึ้นอยู่กับ HOKZZ) สิ่งนี้รองรับ ARM64 ภายใต้ Debugger (LLDB)
แอพตัวอย่างคือ sample/TraceAllMsgDemo
ใช้วิธีการใด ๆ ให้คัดลอก <app's sandbox>/Library/appletracedata จาก Simulator/Realdevice

ผสาน/ประมวลผลล่วงหน้า appletracedata
python merge.py -d <appletracedata directory>
สิ่งนี้จะสร้าง trace.json ในไดเรกทอรี Appletracedata
ตอนนี้ !!! คุณสามารถทิ้ง trace.json ลงใน chrome://tracing หรือหากคุณต้องการสร้างผลลัพธ์ HTML ให้ดำเนินการต่อไปยังขั้นตอนที่ 4
เรียกใช้ sh get_catapult.sh เพื่อรับแหล่งที่มาของ Catapult
จากนั้นสร้าง trace.html โดยใช้ catapult
python catapult/tracing/bin/trace2html appletracedata/trace.json --output=appletracedata/trace.html
open trace.html
trace.html รองรับโครเมี่ยมเท่านั้น
เปิด sampledata/trace.html โดยใช้ Chrome
欢迎关注微信订阅号, 更多有趣的性能优化点点滴滴。
