Taille de la mémoire d'un objet comme octet

Faraz:

Si j'ai un objet, par exemple ...

String city = "Chicago"

et j'ai des millions d'entre eux. Disons que je prends l'octet de ces millions d'objets,

byte[] cityByte = "Chicago".getBytes()

Would octets prendre moins d'espace dans la mémoire?

edit: plus en profondeur:

J'ai plusieurs com.microsoft.azure.servicebus.Message objets. Je compte utiliser SerializationUtils de Apache Commons Lang pour obtenir le tableau d'octets de chaque objet et le stocker dans une liste.

Je pensais que si je stocke des objets 1 million de messages dans une liste, qui pourrait causer un problème. Mais si je stocke les mêmes objets que million un tableau d'octets dans une liste, je vais avoir un peu plus de mémoire disponible pour que je puisse faire d'autres choses. D'où la question.

Matthew I.:

Je JOL 1 pour déterminer la taille réelle des objets en mémoire lors de l' exécution:

import org.openjdk.jol.info.GraphLayout;

public class MainClass {

    public static void main(String[] args) {

        String city = "Chicago";

        byte[] cityByte = "Chicago".getBytes();

        System.out.println(GraphLayout.parseInstance(city).toPrintable());
        System.out.println(GraphLayout.parseInstance(cityByte).toPrintable());
    }
}

production:

java.lang.String@4d7e1886d object externals:
          ADDRESS       SIZE TYPE             PATH                           VALUE
        76ac826d8         24 java.lang.String                                (object)
        76ac826f0         32 [C               .value                         [C, h, i, c, a, g, o]


[B@3caeaf62d object externals:
          ADDRESS       SIZE TYPE PATH                           VALUE
        76ac82738         24 [B                                  [67, 104, 105, 99, 97, 103, 111]

Conclusion: 'chaîne' 32 octets VS 'byte []' 24 octets

PS Les résultats peuvent varier selon la version JVM et options. Essayez la même approche dans votre environnement. Exécuter à jdk_1.8.0_161 Mac OS 10.14

JOL

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=207562&siteId=1
conseillé
Classement