Java程序示例计算某个集合所占内存的大小
以下是一个示例程序,用于计算某个集合所占的内存大小:
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是你的主类名
原文地址: https://www.cveoy.top/t/topic/iOkC 著作权归作者所有。请勿转载和采集!