java、python 内存溢出
来源:互联网 发布:淘宝摄影价格表 编辑:程序博客网 时间:2024/05/16 00:54
内存溢出
内存溢出(out of memory)通俗理解就是内存不够,通常在运行大型软件或游戏时,软件或游戏所需要的内存远远超出了你主机内安装的内存所承受大小,就叫内存溢出。此时软件或游戏就运行不了,系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件
一、java
1. 永久区溢出 Exception in thread “main” java.lang.OutOfMemoryError: PermGen space
[root@localhost ~]# cat OOMT.java import java.util.*; import java.lang.*; public class OOMT{ public static void main(String... args){ List<String> list = new ArrayList<String>(); int i = 0; while(true){ list.add(String.valueOf(i++).intern()); } }}
2. 堆溢出 java.lang.OutOfMemoryError: Java heap space
这部分用于存放类的实例。被缓存的实例(Cache)对象,大的map,list引用大的对象等等,都会保存于此。
堆内存会在jvm启动时自动设置,初始值 -Xms为物理内存的1/64,最大值-Xmx为1/4;可以通过参数-Xmn、-Xms、-Xmx设置,一般-Xms和-Xmx不超过80%,-Xmn为-Xmx的1/4;
public class HeapSpace { public static void main(String[] args) { List<String> list = new ArrayList<String>(); int i=0; while(true){ list.add(new String(""+i++)); } } }
3. 栈溢出错误,非规范的 OutOfMemoryError Exception in thread “main” java.lang. StackOverflowError
这部分用于存放局部变量、方法栈帧信息。栈帧太多,也就是函数调用层级过多时就会出现此异常,检查是否有死递归的情况。
对应的启动参数为:-Xss ( JDK1.5以后默认是1M,之前是256K)
public class StackOverflow { public int i=0; public void stackLeak(){ i++; stackLeak(); } public static void main(String[] args) { StackOverflow sof = new StackOverflow(); sof.stackLeak(); } }
二、Python
[root@node-17 wyhui](controller)# cat OOMTest.py #!/usr/bin/pythonmyList = []var = 1a = 0while var==1: a += 1 myList.extend('A%s'%a)
0 0
- java、python 内存溢出
- python 检测内存溢出
- Tomcat溢出、Java内存溢出
- Tomcat溢出、Java内存溢出
- 如何查找 JAVA 内存溢出
- JAVA内存溢出
- Java内存溢出
- java 程序内存溢出
- JAVA内存溢出解析
- Java 内存溢出分析
- Java内存溢出分类
- JAVA 开发内存溢出
- java内存溢出
- JAVA内存溢出解析
- Java内存溢出
- java内存溢出
- JAVA内存溢出解析
- JAVA内存溢出解析
- 占位
- codeforces685A+DFS
- 解决cocoapods diff: /../Podfile.lock: No such file or directory
- Go-HTTP
- 第14个python程序:提示和传递
- java、python 内存溢出
- 今天你对我爱搭不理, 明天我让你高攀不起
- JAVA基础6.40——classpath
- CocoaPods 快速创建私有类库指南
- 按键通过css切换状态
- Markdown编辑器使用
- AsyncTask超时问题分析及解决
- Linux 0.11进程共享同一个页目录表
- 码农 码农