Maison >Java >javaDidacticiel >Comment déterminer la taille d'un objet en Java ?

Comment déterminer la taille d'un objet en Java ?

DDD
DDDoriginal
2024-11-05 07:07:01984parcourir

How to Determine the Size of an Object in Java?

Déterminer la taille d'un objet en Java

Malgré la prévalence de la méthode sizeOf() dans des langages comme C/C, Java n'a pas d'équivalent direct pour calculer l'empreinte mémoire d'un objet. Cet article explore des approches alternatives pour répondre à ce besoin.

Utilisation du package d'instrumentation

L'API d'instrumentation Java fournit la méthode getObjectSize(), qui offre une approximation de la taille d'un objet spécifique. à sa mise en œuvre. Un exemple d'utilisation :

<code class="java">import java.lang.instrument.Instrumentation;

public class ObjectSizeFetcher {
    private static Instrumentation instrumentation;

    public static void premain(String args, Instrumentation inst) {
        instrumentation = inst;
    }

    public static long getObjectSize(Object o) {
        return instrumentation.getObjectSize(o);
    }
}</code>

Pour utiliser cette méthode, spécifiez ce qui suit dans votre fichier manifeste :

<code class="xml"><instrumentation>
  <main class="ObjectSizeFetcher">
    <option name="tools" value="all"/>
  </main>
</instrumentation></code>

À partir du code de votre application, appelez getObjectSize() comme ci-dessous :

<code class="java">public class C {
    private int x;
    private int y;

    public static void main(String[] args) {
        System.out.println(ObjectSizeFetcher.getObjectSize(new C()));
    }
}</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn