Mexeur

Un simple agent d'instrumentation pouvant être connecté à un programme Java et permet à ce programme d'interroger l'utilisation de la mémoire des objets
Télécharger maintenant

Mexeur Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • Freeware
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Neil Coffey
  • Site Internet de l'éditeur:
  • http://www.javamex.com

Mexeur Mots clés


Mexeur La description

Un agent d'instrumentation simple qui peut être attaché à un programme Java et permet à ce programme d'interroger l'utilisation de la mémoire des objets CLASSMEXER est un simple agent d'instrumentation Java qui fournit des appels de commodité pour mesurer l'utilisation de la mémoire d'objets Java à partir d'une application. Le projet fournit actuellement les appels statiques suivants de la classe MemoryTil, à l'intérieur du package COM.JAVAMEX.CLASSMEXER: Public statique MemorysageOf (Object Obj) Public Static DeepMemoryUsage de Statique Public Static DeepMemoryUsageOf (Obj Obj, VisibilitéFilter RéférenceFilter) Public Static Long DeepMemoryUsageOfall (Collection Objs) Public Static Long FewMemoryUsageOfflen (Collection Objs, VisibilitéFilterficeFilter) Installation de CLASSMEXER Dans votre projet afin d'utiliser CLASSMEXER: * Pour la compilation: Inclure la classe Mexer.jar votre projet, ou assurez-vous d'inclure-le dans la classe de classe si vous compilez de la ligne de commande; * Pour exécuter: Ajouter -javaagent: Classmexer.jar à la commande Java utilisée pour démarrer votre application, en vous assurant qu'une copie du pot est dans le répertoire de travail (le répertoire à partir de laquelle vous démarrez l'application - pas nécessairement la même chose que la classe de classe). Dans votre code source, vous devrez importer la classe com.javamex.classmexer.memoryutil.Comment que l'appel le plus simple fourni par la classe MemoryTil renvoie le nombre d'octets occupés par un objet, non inclus aucun objet qu'il fait référence à: Importer com.javamex.classmexer.memoryeutil; ... Long Nobytes = MemoryTil.MemorySusageOf (ToeObject); Cette méthode est essentiellement une enveloppe autour de l'instrumentation de la méthode JDK.getObjectSize (). En tant que tel, cela ne donne pas toujours un résultat très pertinent. Habituellement, il est plus intéressant d'interroger l'utilisation de la mémoire "profonde" d'un objet, qui comprend des «sous-observations» (objets mentionnés par un objet donné). Par exemple, si nous essayons d'interroger l'utilisation de la mémoire d'une chaîne à l'aide de MichemoSageOf (), nous ne comprendrons pas les caractères de la chaîne, car ils sont stockés dans un tableau de caractères (un objet séparé) référencé par la chaîne. Objet lui-même.Les appels DeepMemoryUsageOf () sont conçus pour contourner ce problème. Ils incluent de manière récursive des "sous-observations" ou des objets mentionnés par "l'objet" principal "transmis. Donc, pour obtenir l'utilisation totale de la mémoire d'une chaîne, nous pouvons utiliser: stress str =" String ou autre "; Long Nobytes = MEMBRYUTIL.DEEPMEMORYUSAGEOF (STR); Par défaut, la méthode de DeepMemoryUsageOf () traverse des références non publiques (c'est-à-dire des objets avec une référence privée, protégée ou package-privé). Pour de nombreux objets tels que des chaînes, il s'agit du type de référence approprié à suivre: En effet, nous incluons simplement ces objets que, dans un sens "appartiennent" à l'objet principal (bien que le critère ne soit pas parfait: un objet pourrait toujours avoir une référence privée à un objet "global"). Nous pouvons changer quelles références sont traversées en passant dans une visibilité optionnelleFilter: importer com.javamex.classmexer.memoryutil; importer com.javamex.classmexer.memoryutil.VisibilitéFilter; .. Long Nobytes = MemoryTil.deepMemorySageOf (ToeObject, VisibilitéFilter.All); Dans cet exemple, toutes les références seront traversées pour compter l'utilisation de la mémoire de l'objet. Les autres options actuellement prises en charge sont Aucun et Private_only.Total Memory Utilisation de plusieurs objetsLes méthodes DeepMemorySusageOfall () Prenez une collection d'objets et additionnez l'utilisation totale de la mémoire de tous les objets de la collection fournie. Si aucune visibilité n'est fournie, la valeur par défaut est non_public comme ci-dessus. Ces méthodes garantissent qu'aucun objet n'est compté plus d'une fois, même si des objets ont plusieurs références. (Les appels à un objet à un seul objet font également cette garantie, car il est bien sûr possible que le graphe d'objet commence par un seul objet d'inclure à terme plusieurs références au même objet.) Exigences: · Environnement Runtime Edition standard Java 2 Standard Edition


Mexeur Logiciels associés