J'ai un problème avec une fuite de mémoire Java, qui pour une raison quelconque n'apparaît pas dans mon profileur (Yourkit). Quand j'exécute mon application Java (un serveur avec des threads pour écouter, envoyer et traiter des données) il semble que chaque fois que je reçois une nouvelle connexion et que cette connexion est supprimée, la mémoire n'est pas nettoyée. Au moins, c'est ce que Windows (et Linux) disent. Lorsque j'exécute mon application avec mon profileur, il affiche simplement la mémoire comme elle est censée être, quand un thread est fermé, toute la mémoire est nettoyée. Cependant, en réalité, après un certain temps Java s'est simplement écrasé parce qu'il utilise trop de mémoire, donc indépendamment de ce que dit mon profileur, j'ai tendance à croire que Windows et Linux l'utilisent. L'exécution de garbage collection ne nettoie pas non plus la mémoire.Comment trouver une fuite de mémoire java
Alors qu'est-ce que cela pourrait être? J'ai essayé tout ce que je sais, ferme les threads, mets tous les objets à zéro, supprime le contenu de chaque tableau, etc. Je suis sûr que les threads sont fermés car Eclipse et le compilateur et les impressions semblent le confirmer.
Est-ce que quelqu'un a une idée?
Comment savez-vous que trop d'utilisation de la mémoire est le problème? Obtenez-vous 'OutOfMemoryError'? – danben
Voir aussi: http: // stackoverflow.com/questions/1473510/general-strategy-to-resolution-java-memory-leak (Le premier hit dans le panneau des questions connexes ... vous avez vérifié les questions connexes, n'est-ce pas?) – meriton
Suite au commentaire de danben: vous pouvez obtenir Les erreurs "Out Of Memory" qui signifient en fait que vous avez dépassé une limite sur le nombre de threads en cours d'utilisation. Peut-être que c'est ce qui se passe et c'est pourquoi votre profileur ne montre pas que vous n'avez plus de mémoire. Si vous parlez de "définir des objets sur null", cela signifie que vous ne maîtrisez pas bien les concepts de base. Vous avez donc peut-être beaucoup de threads qui ne s'arrêtent pas. –