JVM为两块:PermanentSapce和HeapSpace,其中
Heap = {Old + NEW = { Eden , from, to } }。PermantSpace负责保存反射对象,一般不用配置。JVM的Heap区可以通过-X参数来设定。
当一个URL被访问时,内存申请过程如下:
A. JVM会试图为相关Java对象在Eden中初始化一块内存区域
B. 当Eden空间足够时,内存申请结束。否则到下一步
C. JVM试图释放在Eden中所有不活跃的对象(这属于1或更高级的垃圾回收), 释放后若Eden空间仍然不足以放入新对象,则试图将部分Eden中活跃对象放入Survivor区
D. Survivor区被用来作为Eden及OLD的中间交换区域,当OLD区空间足够时,Survivor区的对象会被移到Old区,否则会被保留在Survivor区
E. 当OLD区空间不够时,JVM会在OLD区进行完全的垃圾收集(0级)
F. 完全垃圾收集后,若Survivor及OLD区仍然无法存放从Eden复制过来的部分对象,导致JVM无法在Eden区为新对象创建内存区域,则出现”out of memory错误”
分享到:
相关推荐
jvm memory
安装 git clone https://github.com/jonboylailam/outOfMemory.gitcd outOfMemory./startTest.sh强调startTest.sh java -Xmx10m -cp classes -XX:OnOutOfMemoryError="./restart.sh" TestOutOfMemory
JVM Debugger Memory View for Android Studio
java 查看JVM中所有的线程的活动状况 java 查看JVM中所有的线程的活动状况
MemoryAnalyzer JVM堆内存分析工具
java对象在jvm中的存储情况 jvm
MemoryAnalyzer-jvm内存分析工具,可以将转储的dump文件解析成图形化,能够清晰的看到项目的内存占用情况以及gc回收详情
Java Heap Cleaner 是 Java 类的 MATLAB 包装器,可清除 Java 堆内存泄漏,防止臭名昭著的 Java OutOfMemory 异常。 Java 代码重新初始化一些负责内存泄漏的 JVM 类,然后强制进行垃圾回收。 重新初始化的 Java 类...
这个是jvm指令手册,可以通过该手册查找理解字节码程序,超详细,超好用!!
JVM Memory Model and GC.pdf
很久之前就一直在学习JVM,但是一直也没有好好的总结,最近终于有了空闲,将之前学习的内容整理成了一个PPT。PPT也可以在这里下载: https://github.com/hitynsun/docs/tree/master/JVM 也希望大神们可以批评指正...
However, increasing the complexity of the language and improving the performance of the JVM created an opening for a new generation of programming languages. If you want to build a strong foundation...
jvm性能调优-jvm内存模型和优化-performance-jvm-memorymodel-optimize
Tracing the internal memory usage of Java Virtual Machine (JVM) by Native Memory Tracking (NMT)
jvm源码
jvm java oom分析 OutOfMemory 内存溢出分析工具
自己总结的jvm中堆的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合jvm的爱好者和学习者
在JVM5.0中调配Garbage Collection 在JVM5.0中调配Garbage Collection 在JVM5.0中调配Garbage Collection
jvm 配置jvm参数 配置jvm参数
对想了解jvm的新人来说,确实是一份难的资料