J'essaie de profiler le code natif sur Android, en utilisant l'outil Simpleperf fourni par Google. J'ai effectué toutes les étapes énumérées dans leur exemple, en réglant security.perf_harden
sur 0, en vérifiant l'architecture de l'appareil que j'utilise (une tablette Nexus 9), et enfin en lançant Simpleperf avec la commande suivante dans le shell de l'appareil:Simpleperf n'enregistrant aucun échantillon
./simpleperf record -p 10910 --duration 5
Mais en conséquence, je reçois
simpleperf I 04-05 10:53:27 11773 11773 cmd_record.cpp:341] Samples recorded: 0. Samples lost: 0.
Et je ne peux pas sembler faire enregistrer Simpleperf tout échantillon. J'ai ma bibliothèque native compilée dans le débogage avec le drapeau -g
, mon application Android est marquée comme android:debuggable=true
(bien que je puisse apparemment l'omettre et juste construire dans le débogage). À ce stade, je ne peux pas mettre le doigt sur ce qui pourrait manquer à Simpleperf pour enregistrer des échantillons.
Si je tente un simple:
./simpleperf report
plus tard, voilà ce que je me retrouve avec:
Cmdline: /data/data/com.my.app_package/simpleperf record -p 10910 --duration 5
Arch: arm64
Event: cpu-cycles (type 0, config 0)
Samples: 0
Event count: 0
Overhead Command Pid Tid Shared Object Symbol
Qu'est-ce que je fais mal ou manque ici?
Oui, j'utilise l'application bien sûr. – JBL