开发者社区> 问答> 正文

java.lang.OutOfMemoryError: PermGen space?报错

我的笔记本内存是8G,64位操作系统。

上图是我对eclipse配置的参数能看到eclipse内存使用情况.

但是使用还没有到900M时就报错 java.lang.OutOfMemoryError: PermGen space。

配置方式依据下面博客:

http://blog.csdn.net/pengchengmm/article/details/18809529

-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms1024M
-Xmx2500M
-XX:PermSize=1224M
-XX:MaxPermSize=2500M
-Djava.net.preferIPv4Stack=true
 

请高手指点一下,为什么还错啊?

展开
收起
爱吃鱼的程序员 2020-06-22 13:10:36 457 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    -Xms2500不知道行不行
    恩,我也发现了这个问题。-Xms2500不能这样写-Xms2500不能这样写-Xms2500M不能这样写-Xms2500M这样写

    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"> PermGenspace,报的是持久代内存溢出,只能通过调整<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">-XX:PermSize来解决,另一点,jvm对持久代的内存是不经常进行回收的,这里面一般存的是类的结构信息,你看下你的程序是否大量的使用反射技术。

    我应该怎么让这个使用的内存回收啊?我有大量使用select语句。我看了当我的程序执行完后,我配置的信息显示eclipse的使用内存是700M,但是此时就没有任何方法去执行了,为什么这700M的内容没有释放啊?

    一般只有fullgc的时候才会回收持久代的内存或者显示的调用System.gc(),不过不建议这样做,这样消耗会很大的,还是从程序上找问题吧,你查出的内容看下是否可以分批处理,一次不要查太多数据。

    <atarget='_blank'>@pengcheng_1024jvm每次fullgc的时机是不定的,只有jvm认为持久代已经将要超出配置的内存大小才会去回收不是很明白!!我有个方法调用别的方法当这个方法执行完以后,程序的使用内容有700M,但是程序不再执行后,为什么他不自动回收那?<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">-Xms1024M
    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">-Xmx2500M
    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">-XX:PermSize=1224M 

    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">-XX:MaxPermSize=2500M

    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">你先看下你装的是多少位的jdk 上面的配置都有问题啊!<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">-Xmx2500M直接设置为4000M看下

    设这么大还溢出。你代码肯定有问题。可是eclipse有时现在只是运行占用400M也会有这个错误!!为什么那?你为啥调整eclipse的参数呢,你用的是eclipse插件来查询吗,如是的eclipse启动的tomcat你应该调整tomcat启动参数呀

    2020-06-22 13:10:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载