In Java, what is the best way to determine the size of an object?中给出了一个很好的答案。
首先,将下面的类编译并放入jar中:
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);
在MANIFEST.MF中添加如下内容:
Premain-Class: ObjectSizeFetcher
然后,我们就可以在main函数中尝试获取对象占用的内存大小了:
public class C {
private int x;
private int y;
public static void main(String [] args) {
System.out.println(ObjectSizeFetcher.getObjectSize(new C()));
将上面的代码打包成jar后,执行:</
在In Java, what is the best way to determine the size of an object?中给出了一个很好的答案。首先,将下面的类编译并放入jar中:import java.lang.instrument.Instrumentation;public class ObjectSizeFetcher {private static Instrumentati...
要查看
Java
程序的
内存
占用
,可以使用以下几种方法之一:
使用 jconsole 工具:jconsole 是
Java
自带的
一个
图形化监视工具,可以实时查看
Java
程序的
内存
使用情况。
使用 jstat 命令行工具:jstat 是
Java
自带的
一个
命令行工具,可以实时查看
Java
程序的
内存
使用情况。
使用 VisualVM 工具:VisualVM 是
一个
免费、开源的 Jav...
When---什么时候需要知道
对象
的
内存
大小
在
内存
足够用的情况下我们是不需要考虑
java
中
一个
对象
所占
内存
大小
的。但当
一个
系统的
内存
有限,或者某块程序代码允许使用的
内存
大小
有限制,又或者设计
一个
缓存机制,当存储
对象
内存
超过固定值之后写入磁盘做持久化等等,总之我们希望像写C一样,
java
也能有方法实现
获取
对象
占用
内存
的
大小
。
How---
java
怎样
获取
对象
所占
内存
大小
在回...
您可以在IDEA的debug模式下,使用
内存
视图来查看
Java
对象
占用
的
内存
。具体操作步骤如下:
1. 在debug模式下,打开要查看的
Java
对象
的变量视图。
2. 在变量视图中,找到要查看的
Java
对象
,右键点击该
对象
,选择“View as Object”选项。
3. 在弹出的菜单中,选择“Open in Memory View”选项。
4. 在
内存
视图中,可以看到该
Java
对象
占用
的
内存
情况,包括
对象
头、实例变量等信息。
希望这个回答能够帮到您。