2009-10-31 3 views
3

J'ai une petite question à laquelle quelqu'un pourrait peut-être répondre. Nous avons récemment créé une bibliothèque Java référencée dans un service Web qui s'exécute sur un serveur d'applications JBoss. Les performances du service Web sur une machine Windows XP standard sont satisfaisantes et prennent environ 1,5 seconde pour l'ensemble du processus. Cependant, lorsque nous déployons le service Web sur une machine Solaris JBoss, nous constatons une baisse significative des performances, bien que le serveur virtuel sur lequel Solaris est hébergé soit beaucoup plus puissant. Le temps de traitement total passe à 3,6 secondes lorsque l'on s'attend à une vitesse globale bien meilleure de la machine Windows. La machine Windows est un simple bureau Pentium où Solaris s'exécute dans un serveur virtuel hébergé sur un Sun Sparc. La première chose qui vient à l'esprit est Garbage Collection car cette bibliothèque utilise beaucoup de tableaux, d'arrailists et alloue souvent de nouveaux objets. Est-ce que quelqu'un a eu une expérience similaire ou des idées de ce qui pourrait arriver?Problème de performance Java de Windows à Solaris JBoss

Cordialement Dimitris

+0

Avez-vous enfin trouvé une explication? – fglez

Répondre

1

Non, mais je vous suggère de joindre à jvisualvm pour voir où le temps est passé.

Utilisez également des outils Solaris standard tels que iostat et vmstat pour identifier si une ressource matérielle est épuisée.

+0

jvisualvm est fourni avec JDK 1.6.0_7 et versions ultérieures. – richj

1

Vous devrez tester votre hypothèse en utilisant une forme de profilage. Il est généralement beaucoup plus facile de profiler le code en dehors du serveur d'application, à moins que vous n'ayez des outils appropriés pour le faire en place (par exemple quelque chose comme OptimizeIt).

Pouvez-vous tester les performances de votre bibliothèque en dehors de l'environnement JBoss? Si vous le pouvez, alors c'est le moyen de commencer. Une fois que vous avez votre harnais de test, vous pouvez commencer à profiler les composants individuels et les sous-composants pour voir où le temps est passé.

Dans un environnement de test, il est beaucoup plus facile d'effectuer des expériences telles que la désactivation de la récupération de place ou l'augmentation des tailles de segment de démarrage et maximale.

Les observations de vos expériences vous donneront de nouvelles idées sur l'endroit où regarder et d'autres expériences à effectuer.

+0

Salut merci pour la réponse. En fait nous avons profilé notre bibliothèque et l'avons expérimenté sur la machine Windows et il n'y a rien d'autre que l'évident qui se démarque. Cependant, nous n'avons pas fait la même chose sur la machine Solaris principalement parce qu'il y a des problèmes de permissions là-bas. Ma question est principalement de faire avec l'expérience passée des gens sur ce passage de windows à solaris jboss. – Dimitris