Aller au contenu

Conseil debug Java


Wooden

Messages recommandés

Bonjours

Je me demandais si vous auriez pas quelque conseil pour debugger des applications un peu lourdes en Java.

En gros l'application c'est un server de jeu:

- extrêmement multi-threadée :10% du code dans 2-3 threads qui vivent pendant toute la durée de vie du serveur et 90% du code qui tourne dans des threads pool (scheduled ou pas)

- bouffe pas mal de mémoire : (~300Mo au démarrage)

- assez complexe (~950 .java)

le problème principal de ce serveur c'est les performances qui se dégradent au fur et à mesure (de façon différentes selon les server (même code mais ordinateur/platforme différente) : ça varie entre 1h et 12h d'uptime avant apparition des problèmes) ce qui aboutis à soit un léger lag qui perturbe le jeu soit à d'énorme freeze ou le server à l'air complètement stoppé d'un point de vue joueur.

J'ai pu utiliser YourKit pour essayer un peu de profiling mais j'ai rien réussit à en tirer d'intéressant.

Au cazou l'application en question c'est L2j(forum) ici la Trac (SVN/tickets/logs)

Si vous avez des idées pour debugger des grosse applications java comme ça...

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Pour debuguer du java,

j'utilise Eclipse et je debug en remote (ca fonctionne bien à condition que ton serveur de dev possede sufissament de mémoire vive).

Faut rajouter les options suivante -Xrunjdwp:transport)dt_socket,address=4301,server=y,suspen=n lors du lancement du java.

Tu trouveras plus d'info sur Internet.

Ensuite tu debug avec eclipse en remote en spécifiant ton ip et le port 4301.

Pour ton problème,

il faut mieux faire du profilage, j'utilise 'ru.nlmk.eclipse.plugins.profiler'. Novolipetsk Iron and Steel Corporation.

L'idée tu fait un dump de la mémoire au départ (c'est long donc ne coupe pas au milieu vas plustot boire un cafée)

Tu utilise ensuite ton appli, jusqu'a l'augmentation de ta mémoire

Et la tu redump Tu regarde quelle classe à grossit quelle classe possède beaucoup trop d'instance tout en comparant avec le précédent dump.

(Tu peut les sauvegarder en utilisant les options d'export du plugin et les comparer dans Excel par exemple)

Bon courage.

Edition : remplacement de mémoire vide par mémoire vive c'est mieux comme ca

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...