Calculer le Temps d'Exécution du Programme Java
Je veux calculer le temps d'exécution de mon Programme en Java et je ne sais pas comment je devrais aller à ce sujet. Je sais que le temps écoulé peut être calculée à l'aide du Système.nanoTime() & Système.currentTimeInMillis(), cependant cette approche ne prend pas en compte les sous-jacents mécanisme de planification du Système d'Exploitation.
Par exemple : il y a 3 processus s'exécutant en même temps (ce qui permet de supposer son un seul système central)
Processus Un
Processus B (Mon Code Java - cours d'exécution dans le Processus de JVM)
Processus C
Maintenant, si le Processus B commence à s'exécuter à 11:00 et se termine l'exécution à 11:02, Système.nanoTime() & Système.currentTimeInMillis() indique le temps pris que 2 minutes. Cependant il est possible que le Processus B pourrait ne pas être en cours d'exécution pour la durée de toute les 2 minutes, parce que l'OS de planifier les 2 autres Processus et ils pourraient être en cours d'exécution pendant un certain laps de temps dans les 2 minutes d'intervalle. Donc, en substance, le Programme java pendant au moins 2 minutes.
Est-il possible de déterminer exactement la durée qui a été prise par un Programme Java lui-même à l'exécution complète?
Remarque :
- Nous pouvons exécuter le code plusieurs fois et prendre le temps moyen de minimiser les effets de tels cas, il serait bon de savoir si il y a un moyen fiable pour calculer le temps d'exécution
- Permet de supposer que la partie du code que nous avons besoin de temps ne peut pas être divisé en plus petits morceaux et prend une grande quantité de temps à traiter.
La réponse est ici Semble comme un double de la question stackoverflow.com/questions/180158/...
Les réponses se concentrer davantage sur l'utilisation de nanotTime()/currentTimeInMillis() pour le calcul du temps d'exécution, mais il ne prend pas en compte le système d'exploitation moment de la planification.
J'ai utilisé pour mettre
date
time
sur ma coquille PS1 pour que je sache combien de temps chaque commande s'exécuteEssayez ce mécanisme: stackoverflow.com/questions/3382954/...
OriginalL'auteur Kakarot | 2014-02-23
Vous devez vous connecter pour publier un commentaire.
Juste au cas où vous êtes à l'aide de Java 8, puis il a
Instant
classe qui représente un instantané point sur la time-line. Cette classe de modèles d'un seul instantané point sur la time-line. Cela peut être utilisé pour enregistrer les événements de l'horodatage de l'application:Et il imprime:
PT7.001S
OriginalL'auteur i_am_zero
De l'ancienne façon, c'est... la casse dans les méthodes
Je suis sûr que vous si vous avez ajouté toutes ces méthodes de calcul que vous devriez recevoir environ le même temps, comme si c'était une. Si c'est le profilage que vous devez faire sur votre programme que je proposerais à l'aide de NetBean de l'outil de profilage, mais pour le temps d'exécution global du Système.currentTimeMillis(); doit être suffisant pour obtenir les renseignements que vous voulais
OriginalL'auteur KRUKUSA