Je veux suivre l'heure et le temps de démarrage pour certaines opérations de mon application sur android. J'utilise l'approche des marqueurs de code pour mesurer le temps de toutes les opérations de base dans mon application. J'ai inséré des marqueurs de code à différents endroits dans le code. J'enregistre l'heure du système chaque fois qu'un marqueur de code est atteint. Et puis je prends la différence de temps entre les marqueurs de début et de fin pour mesurer le temps de démarrage et d'autres opérations.Quelles sont les raisons de la variance dans la mesure de la performance de l'application Android
Je reçois une certaine variance en l'espace de millisecondes chaque fois que je mesure l'heure d'un scénario. Par exemple, si je mesure le temps de démarrage en 10 itérations, j'obtiens des valeurs différentes dans la plage de 1400 ms à 1600 ms à chaque fois. En raison de cette variation dans les lectures, je ne suis pas toujours sûr à 100% si mon changement a une incidence sur le temps de démarrage et d'autres opérations.
Pour autant que je sache, la variance peut être due aux raisons suivantes:
- mise à l'échelle de fréquence du processeur par le noyau Linux. J'ai donc désactivé la mise à l'échelle et mis le scaling_governor à la performance.
- Utilisation des ressources en raison d'autres processus s'exécutant sur le périphérique. J'ai éliminé cela aussi. J'utilise le système d'exploitation Android, sans applications externes. Et avant d'exécuter les tests, je redémarre d'abord mon appareil. Donc, chaque fois que j'exécute mon test, le même jeu d'applications fonctionne sur mon appareil.
- Différents niveaux de batterie. J'effectue toujours mes tests lorsque mon téléphone est chargé à 100% et qu'il est branché.
- Je prends également les mesures sur un même appareil à chaque fois. J'ai un appareil dédié pour cette tâche.
Quelles peuvent être les autres raisons de la variance dans la mesure du rendement? Existe-t-il une meilleure façon de mesurer les performances?
[ Java] (http://t.qkme.me/35x9qk.jpg) – Jakuje