AppleTrace iOS 에서 앱의 성능을 분석하기 위해 개발되었습니다.
>> 사용하기가 훨씬 쉬운 Messier라는 교체품을 개발했습니다. :)

위키로 가십시오
git clone https://github.com/everettjf/AppleTrace.git
안정적인 릴리스는 릴리스를 참조하십시오
trace.json 합니다. (추적 파일 이상이있을 수 있습니다.)trace.json 기반으로 trace.html 생성합니다.자세한 내용은 아래를 참조하십시오.
지금까지 추적 데이터를 생성하는 두 가지 방법이 있습니다.
(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 메소드를 고치는 (hookzz 기반). 이것은 Debugger (LLDB)에서 ARM64 만 지원합니다.
샘플 앱은 sample/TraceAllMsgDemo 입니다.
모든 종류의 방법을 사용하여 <app's sandbox>/Library/appletracedata Simulator/RealDevice에서 복사하십시오.

appletracedata 병합/전처리합니다.
python merge.py -d <appletracedata directory>
Appletracedata 디렉토리에서 trace.json 생성합니다.
chrome://tracing trace.json 또는 HTML 결과를 생성하려면 4 단계를 계속하십시오.
sh get_catapult.sh 실행하여 투석기 소스를 얻습니다.
그런 다음 catapult 사용하여 trace.html 생성하십시오.
python catapult/tracing/bin/trace2html appletracedata/trace.json --output=appletracedata/trace.html
open trace.html
trace.html은 Chrome 만 지원합니다
Chrome을 사용하여 sampledata/trace.html 엽니 다.
欢迎关注微信订阅号, 更多有趣的性能优化点点滴滴。
