2017-04-05 1 views
2

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?

Répondre