在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个救助域构成。永久域保存在虚拟机的整个生存周期都存在的对象,永久域不会被垃圾收集器清空。

最新文章

  1. flexBox布局 -- 兼容性
  2. 出售一套Unity ARPG手游源码
  3. Java上面出现这个错误如何解决关于XML的
  4. IPC进程通信机制
  5. CLR内存管理
  6. Javascript的字面量对象以及如何拆解字面量对象
  7. DataGrid简单数据绑定实例2
  8. iOS多线程系列(3)
  9. rsyslog 传输日志
  10. 求最大公约数(GCD)的两种算法
  11. C语言指针详解
  12. list,set,map总结
  13. javascript显式类型转换
  14. DDGScreenShot--iOS 图片处理--多图片拼接 (swift)
  15. Java的xml与map,与Bean互转
  16. SpringBoot系列: Eclipse+Maven环境准备
  17. mysql批量更新的两种方式效率试验<二>
  18. css制作表格
  19. Qt+QGis二次开发:打开S-57格式(*.000)电子海图数据,并设置多边形要素的显示风格
  20. detectMultiScale 读取冲突的一个解决方法

热门文章

  1. 【资料】wod属性
  2. 分享一个 markdown 编辑器 - Mditor
  3. Spark源码分析:多种部署方式之间的区别与联系(转)
  4. Android模拟器怎么配置网络连通
  5. Ubuntu下中文完美解决方案
  6. uva 10994 - Simple Addition(规律)
  7. SQL Server 2005 中实现通用的异步触发器架构 (转)
  8. 我追一个处女座的女孩快两个月了,我之前聊得很好,她说过有空call我去看电影,过了一个月她就不理我了,我喜欢她, 我是程序员,百度发不了那么多字。
  9. Tensorflow 深度学习简介(自用)
  10. 【Cocos2d-x 3.0】游戏开发之android交叉编译