JDK8 JVM 简单堆分配实验
来源:互联网 发布:apache kylin 2.0安装 编辑:程序博客网 时间:2024/06/05 17:31
实验环境
JDK8
Eclipse Neon.1a Release (4.6.1)
实验问题
在进行新生代的from和to空间分配的配置时
发现分配的空间大小不对。
实验内容
jvm参数
-Xmx20m -Xms20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails
程序
连续申请10次1M内存空间,总计10M
实验结果
报错如下
[GC (Allocation Failure) [PSYoungGen: 509K->480K(1024K)] 509K->536K(19968K), 0.0005949 secs] [Times: user=0.08 sys=0.02, real=0.00 secs]
Heap PSYoungGen total 1024K, used 747K
eden space 512K, 47% used
from space 512K, 98% used
to space 512K, 0% used
ParOldGen
total 18944K, used 10248K
object space 18944K, 54% used
Metaspace
used 2587K, capacity 4486K, committed 4864K, reserved 1056768K class
space used 287K, capacity 386K, committed 512K, reserved 1048576K
Java HotSpot(TM) 64-Bit Server VM warning: NewSize (1536k) is greater than the MaxNewSize (1024k). A new max generation size of 1536k will be used.
问题
(1) 明显的eden空间和from/to 空间的比例不为2,与参数不符
(2) 老年代空间使用为10248K,新生代使用空间为747K;总计申请10240K空间。
猜想
(1)问题1会不会与虚拟机底层的最小分配单位有关
(2)问题2应该 是程序的其他资源占用一部分空间
解决
(1)将新生代空间增大 为2m -Xmn2m
from 和to 的比例正常
(2)不申请任何空间时,eden占用819k(疑为Java程序其他占用)
只申请1M空间。发现eden 空间内占用1843K。
- JDK8 JVM 简单堆分配实验
- jvm 堆内存分配
- JDK8中JVM堆内存划分
- JDK8中JVM堆内存划分
- JVM堆内存结构分配
- JVM之堆内存分配
- jvm内存管理-堆内存分配
- JVM堆内存分配与回收策略
- 关于JVM对象分配的小实验
- JVM堆参数简单描述
- 关于JVM中堆内存大小的分配问题
- JVM(4)--java堆和栈、内存分配策略
- 深入学习JVM笔记二堆的分配参数
- 深入理解Java之JVM堆内存分配
- JVM--java堆和栈、内存分配策略
- JVM堆内存划分及简单调整
- 关于堆,栈,动态分配,静态分配的一个小实验
- JDK8 JVM Eden 2 Survivor
- 轻量级框架开发
- tf-Mnist手写字体识别
- js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 # )
- EOJ 3261 分词 dp+字典树
- Android---SmartImageView和AsyncHttpClient的应用之《新闻客户端》案例
- JDK8 JVM 简单堆分配实验
- js插件开发规范
- IE下跨域出现No Transport
- 20170524-SQL数据输出转换,ResultSet,method
- 二叉查找树的判断
- STM32高级教程之USB HID双向数据传输
- 初始
- Android的IPC机制
- Phpcms V9内容页show模板调用标签一览