Jump to content

Conseil debug Java


Recommended Posts

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...

Link to comment
Share on other sites

  • 4 weeks later...

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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...