Wooden Posted May 14, 2006 Share Posted May 14, 2006 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 More sharing options...
Wooden Posted June 10, 2006 Author Share Posted June 10, 2006 hum, ce topic à été placé dans les section web apres le split web/porg. peut être serait-il mieux dans la section programation? Link to comment Share on other sites More sharing options...
Quarky Posted June 10, 2006 Share Posted June 10, 2006 Un petit panneau pour avertir les modos : Link to comment Share on other sites More sharing options...
Sentinel Posted June 10, 2006 Share Posted June 10, 2006 Modo ninja en action ! Téléportation vers la section Programmation ! Link to comment Share on other sites More sharing options...
sbruchet Posted June 13, 2006 Share Posted June 13, 2006 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.