2010-03-13 2 views

Répondre

3

Ces tableaux primitifs sont susceptibles d'être l'état interne des choses comme String, qui maintient son état dans un char[]. Un bon profileur le comprendra et aura la notion de «taille retenue», qui décrit la taille des objets, y compris la taille de leurs sous-objets. Cela indiquerait que String occupait l'espace, et non char[].

Cependant, je ne vois pas de "taille retenue" dans VisualVM. Il ne semble pas avoir les capacités de profilage appropriées des alternatives commerciales.

Pour voir de quoi je parle, essayez de télécharger une évaluation de YourKit, et connectez-la à votre application. C'est beaucoup plus complexe que VisualVM, mais il peut vous donner la taille retenue des objets de tas, et c'est assez éclairant. Il vous montrera également ce qui référence chacun des objets sur le tas, de sorte que vous pouvez tracer des fuites.

+0

Merci, cela semble être une meilleure option ... – MalcomTucker

4

VisualVM calcule la taille retenue. Vous devez ajouter la colonne manuellement, la vue par défaut ne semble pas l'avoir cependant.

+0

Savez-vous comment le faire? Il existe un moyen de trouver les instances supérieures par taille retenue, mais je ne peux pas obtenir la même mesure pour le niveau de la classe. – lightoze

Questions connexes