第二节 JVM优化应用以及知识总结
在JVM中。假设98%的时间是用于GC且可用的HeapSize不足2%时将会抛出OOM异常;HeapSize最大不要超过可用物理内存的80%,一般-Xms –Xmx设置为同样,-Xmn设置为1/4的-Xmx。
若-Xms、-Xmx设置的大小超过物理内存,则会出现:
”Error occurred during initialization if VM could not reserve enoughspace fro object heap”
对于Web类型的应用(要求大吞吐量)堆大一些好。而对于GUI应用(要求实时响应)堆太大会占用太多时间进行垃圾收集,这样就不能实现较好的实时性,交互性会较差。
通常出现的错误:
“java.lang.OutOfMemeoryError:Java Heap space”是由于JVM的默认堆大小是64MB,能够通过设置最大值和最小值实现。通常设置为内存大小的80%,以下以1G内存为例。
解决方式:
1)在Windows中加入环境变量
JAVA_OPTS=-Xm800m–Xmx800m
2)若用的是Tomcat,则在Tomcat的主文件夹的bin/catalina.bat中加上
SetJava_OPTS=-Xm800m –Xmx800m
3)在Linux系统中。则在Tomcat的主文件夹的bin/catalina.bat中加上
Set Java_OPTS=’-Xm800m –Xmx800m’
主要知识点:
JVM内存组成:新域(YoungGeneration)、旧域(Tenured Generation)和永久域(Perm Generation)。新域有Eden和2个救助域构成。永久域保存在虚拟机的整个生存周期都存在的对象,永久域不会被垃圾收集器清空。
最新文章
- flexBox布局 -- 兼容性
- 出售一套Unity ARPG手游源码
- Java上面出现这个错误如何解决关于XML的
- IPC进程通信机制
- CLR内存管理
- Javascript的字面量对象以及如何拆解字面量对象
- DataGrid简单数据绑定实例2
- iOS多线程系列(3)
- rsyslog 传输日志
- 求最大公约数(GCD)的两种算法
- C语言指针详解
- list,set,map总结
- javascript显式类型转换
- DDGScreenShot--iOS 图片处理--多图片拼接 (swift)
- Java的xml与map,与Bean互转
- SpringBoot系列: Eclipse+Maven环境准备
- mysql批量更新的两种方式效率试验<;二>;
- css制作表格
- Qt+QGis二次开发:打开S-57格式(*.000)电子海图数据,并设置多边形要素的显示风格
- detectMultiScale 读取冲突的一个解决方法
热门文章
- 【资料】wod属性
- 分享一个 markdown 编辑器 - Mditor
- Spark源码分析:多种部署方式之间的区别与联系(转)
- Android模拟器怎么配置网络连通
- Ubuntu下中文完美解决方案
- uva 10994 - Simple Addition(规律)
- SQL Server 2005 中实现通用的异步触发器架构 (转)
- 我追一个处女座的女孩快两个月了,我之前聊得很好,她说过有空call我去看电影,过了一个月她就不理我了,我喜欢她, 我是程序员,百度发不了那么多字。
- Tensorflow 深度学习简介(自用)
- 【Cocos2d-x 3.0】游戏开发之android交叉编译