zoukankan      html  css  js  c++  java
  • 内存溢出解决办法

          

    设置堆内存大小

        错误原因: java.lang.OutOfMemoryError: Java heap space

        解决办法:设置堆内存大小 -Xms1m -Xmx70m -XX:+HeapDumpOnOutOfMemoryError

        

          publicstaticvoid main(String[] args) throws InterruptedException {

          

    List<Object> list = new ArrayList<>();

               Thread.sleep(3000);

               jvmInfo();

               for (inti = 0; i < 10; i++) {

                     System.out.println("i:"+i);

                     Byte [] bytes=   new Byte[1*1024*1024];

                     list.add(bytes);

                     jvmInfo();

               }

               System.out.println("添加成功...");

          }

     

     

    设置栈内存大小

          

        错误原因: java.lang.StackOverflowError

        栈溢出 产生于递归调用,循环遍历是不会的,但是循环方法里面产生递归调用, 也会发生栈溢出。

        解决办法:设置线程最大调用深度

        -Xss5m 设置最大调用深度

        

    publicclass JvmDemo04 {

           privatestaticintcount;

           publicstaticvoid count(){

               try {

                      count++;

                      count();

               } catch (Throwable e) {

                     System.out.println("最大深度:"+count);

                     e.printStackTrace();

               }

           }

           publicstaticvoid main(String[] args) {

                count();

          }

    }

    Tomcat内存溢出在catalina.sh 修改JVM堆内存大小
    JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m"

          

  • 相关阅读:
    Fiddler 只看指定URL请求
    WTM框之—调整默认的删除方法
    WTM框之—调整grid的每页显示行数
    WTM框之—数据列表上添加按钮的学习记录
    Armbian欢迎信息系统状态脚本
    Shell中的${xxx%% *}字符串分割方法
    强制SSH使用密钥认证禁止密码登录
    Linux开机自动挂载外接存储
    mysql实现name姓名多个相同的数据只取一条
    git 常用命令备忘录
  • 原文地址:https://www.cnblogs.com/zhouwen2017/p/9718494.html
Copyright © 2011-2022 走看看