zoukankan      html  css  js  c++  java
  • 理论:第十三章:堆溢出,栈溢出的出现场景以及解决方案

    堆溢出的情况及解决方案

    •  OutofMemoryError:Java heap space 堆内存中的空间不足以存放新创建的对象

    • OutOfMemoryError: GC overhead limit exceeded 超过98%的时间用来做GC并且回收了不到2%的堆内存

    • OutOfMemoryError: Direct buffer memory 堆外内存

    • OutofMemoryError:unable to create new native thread

    解决方案:

    • OutOfMemoryError: Metaspace 元数据区(Metaspace) 已被用满

    解决方案:-XX:MaxMetaspaceSize=512m

    设计一个堆溢出的程序:https://blog.csdn.net/java_wxid/article/details/103021907

    栈溢出几种情况及解决方案

    • 局部数组过大。当函数内部的数组过大时,有可能导致堆栈溢出。
    • 递归调用层次太多。递归函数在运行时会执行压栈操作,当压栈次数太多时,也会导致堆栈溢出。
    • 指针或数组越界。这种情况最常见,例如进行字符串拷贝,或处理用户输入等等。

    解决这类问题的办法有两个

    • 增大栈空间
    • 改用动态分配,使用堆(heap)而不是栈(stack)
    • 直接查询生产环境服务器内存占用情况,通过命令定位到具体的那行代码
  • 相关阅读:
    jquery ajax
    js 列表选择
    Jquery 搜索框自动提示
    图片居中跟inline-block
    模式学习(一)
    高效图形(一)
    eval() / Function()
    css3(一)
    回调函数(二)
    回调函数(一)
  • 原文地址:https://www.cnblogs.com/javawxid/p/13731657.html
Copyright © 2011-2022 走看看