AppleTrace разработана для анализа производительности приложения на iOS .
>> Я разработал замену под названием Messier, которая намного проще в использовании. :)

Перейти в Вики
git clone https://github.com/everettjf/AppleTrace.git
Для стабильного выпуска, пожалуйста, обратитесь к выпускам
trace.json . (Может быть более 1 файла трассировки.)trace.html на основе trace.json .Смотрите ниже для более подробной информации.
До сих пор есть 2 способа генерации данных трассировки.
(1) Раздел «Ручной набор».
Вызовите APTBeginSection в начале метода и APTEndSection в конце метода. Для объективного метода C (независимо от того, метод экземпляра или метод класса) существует макрос 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 в каталоге AppletredataTa.
Теперь !!!, вы можете бросить trace.json в Chrome's chrome://tracing . Или, если вы хотите сгенерировать результат HTML, перейдите к 4 -м шагу.
Запустите sh get_catapult.sh , чтобы получить источник катапульта.
Затем генерируйте trace.html , используя catapult .
python catapult/tracing/bin/trace2html appletracedata/trace.json --output=appletracedata/trace.html
open trace.html
trace.html только поддерживает Chrome
Open sampledata/trace.html с использованием Chrome.
欢迎关注微信订阅号 , 更多有趣的性能优化点点滴滴。
