以下是一个示例程序,用于计算某个集合所占的内存大小:

import java.lang.instrument.Instrumentation;
import java.util.ArrayList;
import java.util.List;

public class MemoryCalculator {
    private static Instrumentation instrumentation;

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

    public static long getObjectSize(Object obj) {
        return instrumentation.getObjectSize(obj);
    }

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add('item1');
        list.add('item2');
        list.add('item3');

        long size = getObjectSize(list);
        System.out.println('Size of the list: ' + size + ' bytes');
    }
}

这个程序使用了 Java 的 Instrumentation 工具来测量对象的大小。在 premain 方法中,我们将 Instrumentation 对象保存起来,以便在 getObjectSize 方法中使用。getObjectSize 方法接收一个对象作为参数,并返回该对象所占用的内存大小。

main 方法中,我们创建了一个 ArrayList 对象,并添加了一些字符串元素。然后,我们调用 getObjectSize 方法来计算该 ArrayList 对象所占用的内存大小,并将结果打印出来。

请注意,为了使用 Instrumentation 工具,你需要在程序运行时添加 -javaagent 参数。例如,你可以使用以下命令来运行这个程序:

java -javaagent:MemoryCalculator.jar YourMainClass

其中,MemoryCalculator.jar 是包含上述代码的 JAR 文件,YourMainClass 是你的主类名。

Java 集合内存大小计算示例

原文地址: https://www.cveoy.top/t/topic/quvI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录