参考文档:http://liuxinglanyue.iteye.com/blog/855907
http://www.developersky.net/thread-97-1-1.html
Sizeof.java
package com.liuxinglanyue;
public class Sizeof
{
public static void runGC () throws Exception
{
for (int r = 0; r < 4; ++ r)
_runGC ();
}
public static void _runGC () throws Exception
{
long usedMem1 = usedMemory (), usedMem2 = Long.MAX_VALUE;
for (int i = 0; (usedMem1 < usedMem2) && (i < 500); ++ i)
{
s_runtime.runFinalization ();
s_runtime.gc ();
Thread.currentThread ().yield ();
usedMem2 = usedMem1;
usedMem1 = usedMemory ();
}
}
public static long usedMemory ()
{
return s_runtime.totalMemory () - s_runtime.freeMemory ();
}
public static final Runtime s_runtime = Runtime.getRuntime ();
}
Lang.java
package com.liuxinglanyue;
public class Lang
{
public static void main(String []args) throws Exception
{
Sizeof.runGC ();
Sizeof.usedMemory ();
long heap1 = Sizeof.usedMemory ();
Te te = new Te();
Sizeof.runGC();
long heap2 = Sizeof.usedMemory();
int size = Math.round ((float)(heap2 - heap1));
System.out.println ("'before' heap: " + heap1 + ", 'after' heap: " + heap2);
System.out.println ("heap delta: " + (heap2 - heap1));
System.out.println("size = " + size + " bytes");
}
}
class Te
{
int i;
// boolean flag;
// Object obj;
Integer k;
}
运行结果:
'before' heap: 137456, 'after' heap: 137472
heap delta: 16
size = 16 bytes
分享到:
相关推荐
JAVA虚拟机的内存管理,详细讲解了JAVA虚拟机的相关配置
java虚拟机的内存结构,关于内存的相关介绍等,想要了解更多JVM的
32位虚拟机
解决java虚拟机内存不足问题,简单快捷
Java 虚拟机JVM内存模型与垃圾收集策略,看完此资料,JVM将不再话下
java中的栈(深层了解java虚拟机对对象的内存分布)
行内存空间回收的处理。但也正是因为这样的原因,虚拟机扮演如此重要的角色,所 以虚拟机的优化变成了一个很重要的问题。 许多 Java 应用程序在 Java 堆中实例化的对象是持久的,但几乎从来不被应用程 序引用...
Java虚拟机Java内存区域及对象.doc
Java内存管理呕心沥血总结出来的,希望对武林中人有一定帮助。
Java虚拟机( 内存结构),可以深入了解JVM虚拟机的内存结构,对于Java虚拟机需要有深入了解的人员可以下载。
第二章:java虚拟结构(运行时区域内存:寄存器,java虚拟机栈,java堆,方法去,运行时常量池,本地方法栈); 第三章:为java虚拟机编译; 第四章:Class文件格式; 第五章:加载、链接与初始化
java虚拟机第二版
利用JAVA虚拟机解决内存管理问题,利用JAVA虚拟机解决内存管理问题,利用JAVA虚拟机解决内存管理问题,利用JAVA虚拟机解决内存管理问题
jvm java虚拟机 Mycelipse内存不足
java 虚拟机
详细解释java内存模型,内容充实,图文并茂,易于理解,值得一看!
对象所需内存大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把一块确定大小的内存从java堆中划分出来。根据java堆内存是否绝对规整,划分方法不同: 1)指针碰撞(Bump the Pointer): Java堆中内存绝对...
java虚拟机规范 Java SE7 java虚拟机规范 Java SE7 java虚拟机规范 Java SE7
java虚拟机java虚拟机java虚拟机java虚拟机java虚拟机
如何配置Tomcat的JVM虚拟机内存大小