JVM 调优--查看jvm可用内存
来源:互联网 发布:linux wps 编辑:程序博客网 时间:2024/05/21 05:58
开发环境 eclipse + Tomcat
配置如下
设置完成以后 启动
在Conntroller中执行以下代码
MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();long xms = memoryBean.getHeapMemoryUsage().getInit();long xmx = memoryBean.getHeapMemoryUsage().getMax();////long comm = memoryBean.getHeapMemoryUsage().getCommitted();long used = memoryBean.getHeapMemoryUsage().getUsed();logger.info(xms / 1024 / 1024 + " " + xmx / 1024 / 1024 + " " + used / 1024 / 1024);Runtime rt = Runtime.getRuntime();long totalMemorySize = rt.totalMemory(); // 初始的总内存long maxMemorySiz = rt.maxMemory(); // 最大可用内存long freeMemorySize = rt.freeMemory(); // 当前可用内存logger.info(totalMemorySize / 1024 / 1024 + " " + maxMemorySiz / 1024 / 1024 + " " + freeMemorySize / 1024 / 1024);执行结果如下
2017-12-22 11:33:07 INFO c.c.controller.- 100 98 722017-12-22 11:33:07 INFO c.c.controller.- 98 98 25设置成-Xms50 -Xmx以后
2017-12-22 11:37:18 INFO c.c.controller.- 50 45 372017-12-22 11:37:18 INFO c.c.controller.- 45 45 7
不太理解的是用第一种方式 init 比 max大
如果把-Xms -Xmx设置的过小,比如设置成 30 则启动的时候会报错
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceededat java.util.concurrent.FutureTask.report(FutureTask.java:122)at java.util.concurrent.FutureTask.get(FutureTask.java:192)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:943)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)
如果在程序里把剩下的空间全部开辟
byte[] data = new byte[(int) freeMemorySize];
java.lang.OutOfMemoryError: Java heap space
以上代码报错
byte[] data = new byte[(int) freeMemorySize-1]; // -1 就没问题了
eclipse + Tomcat
阅读全文
0 0
- JVM 调优--查看jvm可用内存
- 查看JVM内存
- jvm内存查看
- Java JVM 内存查看
- JVM内存查看
- jvm内存查看命令
- 查看设置JVM内存信息
- jvm内存查看和分析
- 查看JVM内存使用情况
- 查看jvm内存使用情况
- 查看JVM内存使用情况
- JVM内存设置与查看
- 查看jvm内存使用情况
- 查看jvm内存使用命令
- 获得JVM的最大可用内存
- 获得JVM的最大可用内存
- 监视JSP中JVM可用内存
- 配置JVM内存 查看内存工具
- 第十二次作业
- Matlab图像增强——空间域图像增强之基础
- Netty学习开发之路
- Spring框架究竟是什么
- Android项目如何将同一套代码应用于多个项目
- JVM 调优--查看jvm可用内存
- BZOJ 2460 元素(贪心+线性基)
- 转载-C++面向对象
- java实现二叉树(打印直观,易于理解)
- 设计模式——原型模式
- spring——(3)Aware接口
- 小程序展示评分结果合评分功能
- pyspider 爬虫教程(一)
- excel截取前、中、后几个字符串的方法