AppleTrace est développé pour analyser les performances de l'application sur iOS .
>> J'ai développé un remplacement appelé Messier qui est beaucoup plus facile à utiliser. :)

Aller au wiki
git clone https://github.com/everettjf/AppleTrace.git
Pour une version stable, veuillez vous référer aux versions
trace.json . (Il peut y avoir plus d'un fichier de trace.)trace.html basé sur trace.json .Voir ci-dessous pour plus de détails.
Jusqu'à présent, il existe 2 façons de générer des données de trace.
(1) Section de jeu manuel.
Appelez APTBeginSection au début de la méthode et APTEndSection à la fin de la méthode. Pour l'objectif de la méthode C (la méthode d'instance ou la méthode de classe), il existe APTBegin et APTEnd MACRO pour un codage facile.
void anyKindsOfMethod{
APTBeginSection("process");
// some code
APTEndSection("process");
}
- (void)anyObjectiveCMethod{
APTBegin;
// some code
APTEnd;
}
L'application de l'échantillon est sample/ManualSectionDemo .
(2) Bibliothèque dynamique accrochez tous les objc_msgsend.
Accrocher toutes les méthodes OBJC_MSGSEND (basées sur Hookzz). Cela ne prend en charge qu'ARM64 sous Debugger (LLDB).
L'application de l'échantillon est sample/TraceAllMsgDemo .
À l'aide de tous les types de méthode, copiez <app's sandbox>/Library/appletracedata hors de Simulator / RealDevice.

Fusionner / prétraitement L' appletracedata .
python merge.py -d <appletracedata directory>
Cela produira trace.json dans le répertoire ApplettraceData.
Maintenant !!!, vous pouvez laisser tomber trace.json dans chrome://tracing . Ou si vous souhaitez générer un résultat HTML, continuez jusqu'à la 4ème étape.
Exécutez sh get_catapult.sh pour obtenir une source de catapulte.
Générez ensuite trace.html en utilisant catapult .
python catapult/tracing/bin/trace2html appletracedata/trace.json --output=appletracedata/trace.html
open trace.html
trace.html ne prend en charge que Chrome
Ouvrez sampledata/trace.html à l'aide de Chrome.
欢迎关注微信订阅号 , 更多有趣的性能优化点点滴滴。
