通过java中的对象获取内存使用率
我需要对象在运行时使用的内存用于某些分析目的。我使用的是不支持评测的netbeans 5.1,由于项目兼容性,我不能使用更高版本的netbeans。请对此提出一些替代方案并进行详细解释。这只是为了了解其工作原理: 例如,如果您有一个类,如:通过java中的对象获取内存使用率,java,Java,我需要对象在运行时使用的内存用于某些分析目的。我使用的是不支持评测的netbeans 5.1,由于项目兼容性,我不能使用更高版本的netbeans。请对此提出一些替代方案并进行详细解释。这只是为了了解其工作原理: 例如,如果您有一个类,如: public class A{ int i; long l; double a[]=new double[N]; } 内存成本如下: 1) 对象开销:16字节 2) 对于inti:4字节 3) 对于长l:8字节 4) 对
public class A{
int i;
long l;
double a[]=new double[N];
}
内存成本如下:1) 对象开销:16字节
2) 对于inti:4字节
3) 对于长l:8字节
4) 对于doublea类型的数组:8*N(数组中的元素数为double*时为8字节)+24字节开销+8字节数组引用
5) 现在添加填充字节,以便字节总数可以被8整除。
其他原语也是如此。这只是为了了解它的工作原理: 例如,如果您有一个类,如:
public class A{
int i;
long l;
double a[]=new double[N];
}
内存成本如下:1) 对象开销:16字节
2) 对于inti:4字节
3) 对于长l:8字节
4) 对于doublea类型的数组:8*N(数组中的元素数为double*时为8字节)+24字节开销+8字节数组引用
5) 现在添加填充字节,以便字节总数可以被8整除。
其他原语也是如此 解决方案:将对象转换为ByteArray并获取数组的长度。它也应该在较旧的java版本中工作 “java ObjectSize”程序的输出 尺码:156 解决方案:将对象转换为ByteArray并获取数组的长度。它也应该在较旧的java版本中工作 “java ObjectSize”程序的输出 尺码:156 看起来像个傻瓜看起来像个傻瓜