2010-12-13 85 views
0

Voici un bref historique. J'ai une application Java qui nécessite environ 6 DLL à charger. 5 des dll ont été achetés, l'autre est celui que j'ai créé. Ma DLL dépend de l'autre 5. Toute interaction avec la DLL est faite par Jni.Profilage et examen de l'allocation de mémoire dans une DLL chargée par Java

Ma DLL semble avoir une fuite de mémoire. J'ai du mal à trouver l'emplacement/la cause. Existe-t-il des outils qui me permettraient de profiler/examiner seulement ma DLL? J'ai des problèmes de profilage et d'examen de l'allocation de mémoire en raison du fait qu'il est chargé par Java, et donc la plupart des profils ont tendance à profiler java.exe et pas seulement ma DLL.

Des suggestions sur la façon dont je pourrais accomplir cela?

Merci

Répondre

1

Avez-vous structuré votre DLL personnalisée telle que vous pouvez la couche Java sur le dessus de celui-ci? Autrement dit, votre DLL a sa propre interface exportée et devient une chose testée indépendamment. Si vous avez, alors vous pouvez utiliser un client C++ avec votre profileur/outil de mémoire favori sans Java.

(Au moins, c'est ce que j'ai fait il ya des années lors de l'écriture d'une DLL pour une utilisation avec Java - YMMV).

+0

Je suis d'accord avec cela. Si vous pouvez isoler le problème dans un environnement, il sera plus facile de trouver le problème +1 –