2010-12-07 4 views
0

J'ai besoin de savoir si eclipse peut afficher une valeur à consigner ou à consigner avant d'appuyer sur la fin du processus.sortie/valeur de la variable de journal avant la sortie en éclipse

Disons que j'ai une méthode qui fait cela:

long cnt = 0; 
while(true) 
     { 
     cnt ++; 
     } 

je frappais terme et il incrémente et je vais frapper fin [dans l'option d'exécution éclipse] de mettre fin au programme. Avant de quitter, je veux que eclipse produise/enregistre la valeur de cnt.

Si ce n'est pas disponible atleast eclipse peut log/output la valeur dire toutes les minutes ou quelques secondes .. de sorte qu'à la fin je serais éteint seulement par des valeurs dans une gamme de minutes.

J'essaie d'évaluer quelque chose et je veux savoir à quelle vitesse je peux aller sur mon matériel avant de lancer mon test. Par conséquent, je ne veux pas d'instructions conditionnelles, etc. dans le programme pour le ralentir.

Des pointeurs?

Merci

+1

cela ne ressemble pas à un benchmark significatif de quoi que ce soit. –

Répondre

0

Une façon d'y parvenir - et Eclipse n'a vraiment pas grand-chose à voir avec elle - est d'ajouter un ShutdownHook (link) à l'exécution de votre code. L'objectif fondamental d'un hook de fermeture est de fournir un mécanisme pour que votre application effectue certaines opérations de nettoyage lorsque la machine virtuelle Java est en cours de fermeture. Toutefois, nous vous avertissons que ce n'est pas une méthode recommandée, mais que vous ne devez l'utiliser que pour effectuer des opérations à faible risque qui n'affecteront pas le caractère sacré global de votre application lors de son redémarrage. c'est parce qu'il n'y a aucune garantie quant à combien de temps le système d'exploitation permettra au processus de la JVM de se terminer. Dans votre cas, je pense que vous pouvez aller de l'avant et l'utiliser, car l'impression de la valeur d'une variable ne devrait pas prendre trop de temps.

+0

hey merci .. Je pensais dessus avant mais supposé que les crochets d'arrêt ne seront pas exécutés sur «terminer» .. vérifiera si cela fonctionne. Thnx – codeObserver

+0

en fait, je ne pense pas que ça va marcher avec Eclipse si vous appuyez sur ce bouton rouge-carré pour forcer l'arrêt. Cela fonctionnera lorsque votre application sera terminée "normalement" par Eclipse une fois l'exécution terminée. – anirvan

1

Non, vous ne pouvez pas imprimer les valeurs quand JVM est terminée.

Pour la valeur d'impression très souvent vous pouvez ajouter quelque chose comme ceci:

long l = System.currentTimeMillis(); 
long cnt = 0; 
while (true) { 
    cnt++; 
    if((System.currentTimeMillis()-l) > 2000L) { 
    l = System.currentTimeMillis(); 
    System.err.println(cnt); 
    } 
} 
Questions connexes