内存溢出 和 内存泄露
内存溢出 (out of memory)不一定是 内存泄露(memory leak)单一导致的!
但是memory leak必然导致影响系统性能,导致out of memory。
当未及时释放内存资源(内存泄露)而导致了内存溢出(OOM)的问题出现时才能叫内存泄露
或者内存泄露已经严重影响了系统性能时才交内存泄露
内存溢出(out of memory/memory overflow)就是你要求分配的内存超出了系统能给你的。
内存溢出有heap overflow和stack overflow两种
内存泄漏(memory leak)就是没有及时释放内存资源。
a.你的程序所分配的内存用完后没有释放。在Java这类有垃圾回收机制的语言中,内存泄漏通常是由于用完的资源仍然被强引用所持有导致的,重启虚拟机就可以归还资源。但在一些没有垃圾回收机制的语言中,申请内存是直接向操作系统登记的,如果在程序中没有显示归还内存的话,即使程序退出,内存也无法使用,直到系统重启。内存泄漏会导致资源的无谓浪费,但不一定会在两次重启之间造成内存溢出,有可能实际表现是操作系统可用内存越来越少,大量数据需要在硬盘的交换文件中读写导致系统变慢。
b.内存泄漏是跟jvm的垃圾回收机制相关的。jvm认为不被任何object引用的对象应该被回收掉,但是因为某些原因,这些垃圾对象没有被回收,却又不可访问(没有被任何对象引用),就造成了所谓的内存泄漏。
内存泄漏的结果是你的内存被无端占用,如果不清理,那么你的可用内存就减少,于是“容易”造成out of memory,也就是内存不足。
stack over flow是另一个情况,java内存分配上层为栈下层为堆,当系统为堆分配内存超出堆大小并且侵蚀到栈空间就stack over flow,比如死循环。
分享到:
相关推荐
软件开发 数据库 内存泄露 内存溢出
Java内存溢出和内存泄露共4页.pdf.zip
OOM全称”Out Of Memory”,即内存溢出。 内存溢出已经是软件开发历史上存在了近40年的“老大难”问题。在操作系统上运行各种软件时,软件所需申请的内存远远超出了物理内存所承受的大小,就叫内存溢出。 内存溢出...
Android 内存溢出和内存泄漏的问题 在面试中,经常有面试官会问“你知道什么是内存溢出?什么是内存泄漏?怎么避免?”通过这篇文章,你可以回答出来了。 内存溢出 (OOM)是指程序在申请内存时,没有足够的内存空间...
一个Qt内存溢出检测小工具,(需要VLD支持)。
java内存泄露、溢出检查方法和工具。 步骤: 1,使用linux命令生存堆栈文件 2,用MemoryAnalyzer.exe工具打开 3,根据工具生成的饼状图可以清晰的找出内存泄漏源
JAVA内存溢出问题总结
所以程序中的内存泄漏我的理解更多是:由于程序的编写错误暴漏出一些 开口 ,导致一些对象 进入 这写开口,最终 导致相关问题 ,进一步说白了,程序有漏洞,不当的调用就会出问题 内存泄漏说明的是这样一种...
处理bitmap内存溢出问题
该文档整合了网上所有的关于描述was(webSphere)下生成许多phd文件的...产生该类文件的原因包括JVM设置的最小内存太小,以至于内存溢出,还有就是程序漏洞,使得JVM内存溢出,文档中叶介绍了websphere的检测工具的使用
spring mvc重定向导致内存溢出解决方案
有的时候,我们需要一次查询很多的数据,或者是说每次查询的数据量都很大,都有可能早晨内存溢出的情况,所以我们今天分别针对三个数据库来探讨如何避免这一问题。
JVisualVM简介与内存泄漏实战分析,如何分析内存溢出,定位内存溢出问题
1.常发性内存泄漏: 发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏 2.偶发性内存泄漏: 发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的...
主要介绍了内存溢出和内存泄漏的详解及区别的相关资料,需要的朋友可以参考下
使用BitmapFactory加载图片时,如果图片过大可能引起OutOfmemory溢出的问题。解决办法。
主要从以下几部分来说明,关于内存和内存泄露、溢出的概念,区分内存泄露和内存溢出;内存的区域划分,了解GC回收机制;重点关注如何去监控和发现内存问题;此外分析出问题还要如何解决内存问题。下面就开始本篇的...
android 的内存溢出和泄露问题. 内存溢出就是分配的内存不足以放下数据项序列。如在一个域中输入的数据超过了它的要求就会引发数据溢出问题,多余的数据就可以作为指令在计算机上运行。 内存泄漏是指在堆上分配...
主要介绍了Python内存泄漏和内存溢出的解决方案,帮助大家维护后台进程,感兴趣的朋友可以了解下
uniapp项目体量过大时,打包H5会报错, - process out of memory 解决放案: 替换HBuildX内置\HBuilderX\plugins\node\node.exe版本 添加\HBuilderX\plugins\compile-node-sass\node_modules\node-sass-china\...