zoukankan      html  css  js  c++  java
  • 【Java-JVM】定量分析解决OutOfMemoryError: PermGen space, 来看科学量化分析

     网络上搜集,有操作有分析。

    一、问题

    在部署大型的 Java Web项目的时候,或者在 MyEclipse 中进行调试的时候经常出现: 

     OutOfMemoryError: PermGen space 

    的错误。

    二、监控运行时参数

    我们经常是在尝试网上的各种方案之后,并且将各种参数手动调整来调整去,都没有作用,依然溢出。此时就需要找到配置后系统认可的内存参数是多少。参考网络上的知识,启动了JDK自带的工具,在jdk1.6.0_10in下面的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的内存可以看出配置是否生效。

  • 相关阅读:
    翻译:《实用的Python编程》03_04_Modules
    翻译:《实用的Python编程》03_03_Error_checking
    翻译:《实用的Python编程》03_02_More_functions
    翻译:《实用的Python编程》03_01_Script
    翻译:《实用的Python编程》03_00_Overview
    翻译:《实用的 Python 编程》02_07_Objects
    翻译:《实用的Python编程》02_06_List_comprehension
    生成器
    python编码
    python迭代器
  • 原文地址:https://www.cnblogs.com/muyun/p/8864082.html
Copyright © 2011-2022 走看看