【Java-JVM】定量分析解决OutOfMemoryError: PermGen space, 来看科学量化分析
2024-10-20 09:33:28
网络上搜集,有操作有分析。
一、问题
在部署大型的 Java Web项目的时候,或者在 MyEclipse 中进行调试的时候经常出现:
OutOfMemoryError: PermGen space
的错误。
二、监控运行时参数
我们经常是在尝试网上的各种方案之后,并且将各种参数手动调整来调整去,都没有作用,依然溢出。此时就需要找到配置后系统认可的内存参数是多少。参考网络上的知识,启动了JDK自带的工具,在\jdk1.6.0_10\bin下面的jconsole.exe内存监控的工具,点击选择PID为4472的这个进程(带有tomcat的进程)。
选择内存页,点击右下角的绿色柱子里的最后一个“内存池“Perm Gen”,相应的左边会显示它的详细信息。
【本博客的截图是修复后的参数大小】
三、设置步骤
1. 正确步骤分为2种情况。
1.1 使用MyEclipse和Tomcat搭配进行本地调试
使用MyEclipse调试程序的话,则需要在该软件内进行JDK参数设置。
设置步骤如下图:参数也可参考。JDK版本和Tomcat选择自己调试时用到的那个。
1.2 只使用Tomcat作为生产环境
只使用Tomcat,那肯定就只有在 Tomcat 的配置文件中进行设置了。
设置文件: (你的Tomcat安装路径)/bin/catalina.bat
修改位置:【rem ----- Execute The Requested Command - 】这行后面增加下面:
set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1024m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=512m
最好set JAVA_OPTS=%JAVA_OPTS% 这个也要加上。
然后手工启动tomcat,然后看jconsole.exe,查看Perm Gen的内存可以看出配置是否生效。
最新文章
- vc++2013中使用MySQL connector/C++ 1.1.4静态链接报错
- 获取当前请求的URL的地址、参数、参数值、各种属性
- linux系统性能监视命令
- Prince2是怎么考试的?
- AR
- 高手就用Chrome不安全模式
- iOS开发-在表单元中添加子视图
- C++虚函数表解析(转)
- OCP-1Z0-051-题目解析-第28题
- 删除PO
- 表达式求值(二叉树方法/C++语言描述)(二)
- linux下网卡相关查看设置
- GitHub 系列之「Git速成」
- GitHub上受欢迎的Android UI Library
- xmanager 开启X11转发失败问题解决
- Qt QGraphicsItem要点 积累
- 新FSM的一些思路
- MySql在windows上的安装
- eclipse工具下hadoop环境搭建
- C++学习8-面向对象编程基础(模板)