2009-09-02 10 views
37

L'exécution de Tomcat via eclipse fonctionne correctement en mode non-débogage, mais pas en mode débogage. Lorsque j'essaie de démarrer le serveur Tomcat en mode débogage, la sortie de la console semble correcte pendant un certain temps, mais commence à ralentir et finit par s'arrêter, fixant le processeur à 100%. Je ne pense pas que ce soit pertinent, mais juste au cas où - voici la sortie de la console à peu près quand elle commence à ralentir et finalement s'arrêter (en arrêtant je ne veux plus de sortie console, mais encore 100% cpu).Accélération de Tomcat en mode débogage avec Eclipse IDE

2009-09-02 14:35:30,859 INFO NONE org.springframework.context.weaving.DefaultContextLoadTimeWeaver:72 - Found Spring's JVM agent for instrumentation 
2009-09-02 14:35:49,562 INFO NONE org.springframework.beans.factory.support.DefaultListableBeanFactory:414 - Pre-instantiating singletons in org.s[email protected]ed889d: defining beans [... 
2009-09-02 14:37:31,031 INFO NONE org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean:221 - Building JPA container EntityManagerFactory for persistence unit ... 

J'ai essayé tout ce que je pouvais penser à réparer:

  • répertoire de travail cleanesd tomcat
  • redémarrés éclipse
  • redémarré Windows
  • rafraîchis/nettoyés tous les projets

J'ai d'abord eu ce proble m la semaine dernière en utilisant eclipse ganymede. J'avais fonctionné correctement en mode debug pendant plusieurs mois avant ce numéro. Je n'ai apporté aucun changement significatif à notre projet qui pourrait causer cela. Finalement, j'ai mis à jour à éclipse galileo qui a résolu mon problème. Maintenant, deux jours plus tard, j'ai le même problème à galileo. Comme je l'ai dit, cela fonctionne très bien en mode non-debug. Toute aide est très appréciée.

Je dois ajouter que d'autres choses fonctionnent en mode débogage - par exemple les tests junit, donc c'est quelque chose de spécifique à tomcat.

+0

Avez-vous essayé de nettoyer votre espace de travail? Parfois ça m'arrive, alors je nettoierai juste mon espace de travail. Une fois l'espace de travail nettoyé, il fonctionne correctement –

+0

FYI - ceci s'applique également à Intellij IDEA. Juste essayé avec IntelliJ 10 et je suis passé de 7 minutes temps de démarrage pour tomcat 5.5.31 à 20 secondes pour mon application .... –

Répondre

126

J'ai traversé le problème! Une fois que je l'ai compris, je me souviens que c'était déjà arrivé. J'ai effacé tous mes points d'arrêt et ça fonctionne bien. Je ne sais pas pourquoi cela causerait le résultat, mais cela fonctionne.

+6

travaillé pour moi aussi bien quand j'avais ce problème aujourd'hui – Ayrad

+6

Merci pour ce conseil, can ' t vous upvote plus! =)) –

+0

Cela m'est arrivé aussi et le nettoyage des points d'arrêt m'a aidé .. C'est bizarre quand même .. :) – kane77

15

J'ai juste rencontré ce problème moi-même, et cette solution m'a aidé. Cependant - je n'ai eu qu'un seul breakpoint, plutôt que le 20+ des autres affiches. Mon point de rupture, cependant, était un point d'arrêt de méthode et non un point de rupture de ligne - je me demande si la multitude d'appels de méthodes au démarrage de tomcat combinés avec le point d'arrêt de la méthode pourrait causer ce problème ... Je viens d'essayer une petite expérience:

  1. Définition d'un point d'arrêt de la ligne et démarrage du mode de mise au point - 5 secondes démarrage (normal)
  2. Définition d'un point d'arrêt de la méthode et le démarrage du mode de débogage - ..... pas prêt à attendre (> 90 secondes).

Je suppose que c'est le problème.

+4

Oui, les points d'arrêt de méthode et les points de contrôle (points d'arrêt sur les champs) sont beaucoup, beaucoup plus lents que les points d'arrêt de ligne. Privilégiez les points d'arrêt de ligne autant que possible, sauf si vous n'êtes pas sûr que la source correspond à la classe que vous déboguez. Par exemple, placez un point d'arrêt sur la première instruction à l'intérieur d'une méthode plutôt que sur la signature de la méthode elle-même. Voir http://stackoverflow.com/a/787753/277307 pour savoir pourquoi les points d'arrêt de la méthode sont plus lents. –

+0

Merci @ nodescript1 Je connais la raison pour laquelle mon eclipse ralentit et corrige. – janwen

1

Modifier le niveau de journalisation par défaut de:

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="ConsoleAppender" /> 
</root> 

Pour:

<root> 
    <level value="OFF" /> 
    <appender-ref ref="ConsoleAppender" /> 
</root> 
3

J'ai eu ce même problème dans Galileo. Exécution rapide mais analyse de débogage. Merci aux messages ci-dessus, j'ai effacé tous les points d'arrêt et redémarré Tomcat. Cela a réglé le problème comme par magie. fyi - J'avais 2 points d'arrêt de méthode et d'autres points d'arrêt de ligne plus tôt. J'ai fait les tests pour confirmer la théorie ci-dessus sur les points d'arrêt de la méthode qui ralentissent. Voici ce que j'ai trouvé.On dirait que ce n'est pas le point d'arrêt de la méthode qui est le problème, le problème était le point d'arrêt de la méthode qui apparaissait toujours dans la liste des points d'arrêt dans la vue de débogage, mais n'existait pas dans le code. Je veux dire que j'ai changé les paramètres de cette méthode, mais l'ancien point d'arrêt avec des paramètres plus anciens existait encore dans la liste des points d'arrêt. C'était le coupable, quand j'ai enlevé cela, les autres points d'arrêt de la méthode n'ont pas ralenti le serveur. On dirait que éclipse essayait de chercher quelque chose de non existant qui semble l'avoir ralenti. J'espère que cela aide.

Questions connexes