JVM HeapSize Permsize
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
java虽然是自动回收内存,但是应用程序,尤其服务器程序最好根据业务情况指明内存分配限制。否则可能导致应用程序宕掉。
举例说明含义:-Xms128m
表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m
表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。
说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try…catch捕捉。
PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。
-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配
过小会导致:java.lang.OutOfMemoryError: PermGen space
MaxPermSize缺省值和-server -client选项相关。
-server选项下默认MaxPermSize为64m
-client选项下默认MaxPermSize为32m
相比Perm Size (permanent generation size)和 Heap Size,OutOfMemoryError 要更常见一些。一般当你遇到OutOfMemoryError 问题时,很多人会告诉你用下面种方法来解决问题:
•添加/调整启动参数-Xms 和 -Xmx,用以增大Heap Size
•以server 方式启动JVM,用以提高JVM”运行期”的执行效率
•检查程序,看是否有不合理的new 操作导致大量不必要的内存消耗
上面两种方法确能解决许多普通问题,但有时即使你设置了很大的Heap Size(比如-Xms128m -Xmx1024m),OutOfMemoryError 仍可能会出现,这时Perm Size 就可能与你有关了。
参见:
•http://lists.canoo.com/pipermail/webtest/2004q3/002460.html
•http://www.raibledesigns.com/page/rd?anchor=how_do_you_determine_a
•http://forum.java.sun.com/thread.jspa?threadID=775925
Perm Size 是部分与-Xms/mx 所指定的heap size无关的内存空间(default: 32M for client, 64M for server),所以即使你设置了再大的ms/mx 值,也仍然存在OutOfMemoryError 隐患。Perm Size 中存放了class 的metadata 等(google for more information)信息,如果你的应用中采用了 Spring、Hibernate 或 Tapestry 等基于 reflection 和 proxying 的框架时,你就很有可能会遇到OutOfMemoryError。
如果是这种情况那就考虑在启动时加入如下参数吧:-XX:PermSize=128m
至于如何选择最合适的PermSize值,可以参考
http://www.raibledesigns.com/page/rd?anchor=how_do_you_determine_a
里面提到了分析最优PermSize 值的几种方法。
注意:并非所有JVM vendor 开发的JVM 都支持/存在PermSize 问题。
另,OutOfMemoryError 的多与JVM 的 GC 有关,选择合适的GC 策略,合理设置启动选项会有很大帮助,参见:http://geniil.spaces.live.com/blog/cns!81B15F02616BA25C!204.entry
另在工作环境里可以使用jrocket
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
![](/assets/blank.gif)
JVM HeapSize Permsize相关推荐
- 转 《JVM HeapSize Permsize》
java虽然是自动回收内存,但是应用程序,尤其服务器程序最好根据业务情况指明内存分配限制.否则可能导致应用程序宕掉. 举例说明含义:-Xms128m 表示JVM Heap(堆内存)最小尺寸128MB, ...
- JDK8报错:warning: ignoring option PermSize=256m; support was removed in 8.0【多测师_王sir】【杭州多测师_王sir】...
tomcat版本由7.0升级到8.0启动时,日志报错 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512m; ...
- jvm 崩溃日志设置_JVM崩溃日志信息分析
前些天,搞JNI的时候,报了个JVM崩溃的错.错误信息如下: # # An unexpected error has been detected by HotSpot Virtual Machine: ...
- warning: ignoring option PermSize=256m; support was removed in 8.0
使用jdk1.8后,控制台出现下面提示信息: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; sup ...
- java 64位 默认分配内存大小_查看你机器中Java程序堆内存的默认初始大小和最大大小...
很多时候,我们运行的Java程序并没有设定堆的内存限制参数,正常来说可以有两个参数来指定初始分配的堆内存和堆内存的最大值,分别为: -Xmx 用来设置你的应用程序(不是JVM)能够使用的最大内存数(相 ...
- java client和servers_“java -server”和“java -client”之间的真正区别?
这实际上与HotSpot和默认选项值 ( Java HotSpot VM选项 )相关联,这些选项在客户端和服务器configuration之间有所不同. 从白皮书( The Java HotSpot ...
- Java 堆默认大小
最近在调整程序的堆大小设置,就顺便看了开发环境中如何设置的.发现开发环境没有主动设置大小,那就应该是根据机器配置和操作系统以及JDK版本等信息使用了默认配置. 查询 PrintFlagsFinal 关 ...
- java client是什么_“java-server”和“java-client”之间的真正区别?
慕村9548890 在早期版本的Java中,最明显的直接区别是分配给-client相对于-server申请.例如,在我的Linux系统上,我得到:$ java -XX:+PrintFlagsFinal ...
- 玩点深入的:Java 虚拟机内存结构及编码实战
本文来源:不会coding 了解JVM内存结构的目的 在Java的开发过程中,因为有JVM自动内存管理机制,不再需要像在C.C++开发那样手动释放对象的内存空间,不容易出现内存泄漏和内存溢出的问题. ...
最新文章
- LeetCode-笔记-143. 重排链表
- 使用CInternetSession获取utf-8页面中文乱码问题解决方法
- [ARC072C]Alice in linear land(dp,贪心)
- linux下安装配置jdk(解压版)
- 华为触摸提示音怎么换_抖音苹果iPhone手机怎么改微信消息提示音 自定义换声音教程...
- requests-获取cookie-0223
- SAP License:FICO重要概念(二)-附常用技巧
- 这个沙盒游戏建立在数字时代,你能通关吗?
- Everything的使用-初级篇
- MATLAB/simulink_S函数
- 红黑联盟 php相关资讯
- 中国历史上水平最高的十首诗词,你都读过吗?
- Android SDK 字段及功能的分析详解
- 写给产品经理的第4封信:关于产品经理的十万个为什么?你为什么要做产品经理?
- 全球人造丝卫生棉条行业调研及趋势分析报告
- 【HTML】关于height值设置和显示不同的原因以及font-size对象为中文和英文的区别
- 微信小视频会上传到服务器么,微信新出的视频号功能怎么样发布短视频?能上传一分钟以上吗?...
- opcache php7,让子弹飞~利用 OPcache 扩展提升 PHP7 性能 | Laravel 篇
- SQLServer通过sql修改表主键
- 汉字转化成拼音 汉字转化成拼音