首页 > 系统相关 >内存泄露,内存逃逸和内存溢出

内存泄露,内存逃逸和内存溢出

时间:2022-08-25 23:11:21浏览次数:86  
标签:对象 逃逸 线程 内存 方法 溢出

1 内存溢出  系统已经不能再分配出你所需要的空间,比如系统现在只有1G的空间,但是你偏偏要2个G空间,这就叫内存溢出 2 内存泄漏:  (Memory Leak) 强引用所指向的对象不会被回收,可能导致内存泄漏,虚拟机宁愿抛出OOM也不会去回收他指向的对象 意思就是你用资源的时候为他开辟了一段空间,当你用完时忘记释放资源了,这时内存还被占用着,一次没关系,但是内存泄漏次数多了就会导致内存溢出 3 内存逃逸定义: 在一段程序中,每一个函数都会有自己的内存区域存放自己的局部变量、返回地址等,这些内存会由编译器在栈中进行分配,每一个函数都会分配一个栈桢,在函数运行结束后进行销毁,但是有些变量我们想在函数运行结束后仍然使用它,那么就需要把这个变量在堆上分配,这种从"栈"上逃逸到"堆"上的现象就成为内存逃逸 4方法逃逸   举个栗子,在一个方法中定义一个对象后(方法内局部的),这个对象被外部方法引用,比如作为返回值返回传递到其他的地方,当这个方法执行结束要进行GC时,这个方法中的对象本应该被回收,却发现该对象还是存活状态没法回收,就称为方法逃逸 5 线程逃逸 :上面的例子,直接将对象返回,该对象可能被外部线程访问,如:赋值给类变量等,称为线程逃逸。

  • 总的来说就是一个对象的指针被多个方法或者线程引用时,我们就称这个对象的指针发生了逃逸
 

标签:对象,逃逸,线程,内存,方法,溢出
From: https://www.cnblogs.com/yang66/p/16626101.html

相关文章

  • 22/8/25 深入理解计算机系统第九章 虚拟内存
    9.7案例:IntelCorei7/Linux内存系统见书5769.8Linux虚拟内存系统与进程相关的数据结构(比如:页表、task和mm结构、内核栈)对每个进程不同物理内存内核虚拟内存......
  • 栈溢出漏洞利用流程——以syncbrs为例
    0x1 缓冲区溢出漏洞攻击简介缓冲区溢出攻击是针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),从而破坏程序的堆栈,使程序转......
  • Kubernetes Container、Pod、Namespace内存及CPU限制
    Quota资源限制  对每个命名空间的资源消耗总量提供限制(在一个namespace下创建quota,就会只对当前namespace进行资源限制)。它可以限制命名空间中某种类型的对象的总数目上......
  • PerfView专题 (第十一篇):使用 Diff 功能洞察 C# 内存泄漏增量
    一:背景去年GC架构师Maoni在(2021.NET开发者大会)[https://ke.segmentfault.com/course/1650000041122988/section/1500000041123017]上演示过PerfView的Diff......
  • 面经-虚拟机-JVM内存参数
    JVM堆内存参数:对于JVM内存配置参数:-Xmx10240m-Xms10240m-Xmn5120m-XX:SurvivorRatio=3其最小内存值和Survivor区总大小分别是?-Xmx10240mXmx:Java虚拟机最大内存10Gm......
  • 面经-虚拟机-jvm内存结构
    虚拟机-jvm内存结构    方法区:存放类加载时的方法堆:存放new出来的对象虚拟机栈:记录方法内的局部变量和方法参数等信息。程序计数器:记录main线程执行中执行其......
  • 深入JVM虚拟机之什么是堆外内存
    堆内内存:1.一般情况下,一个新的对象创建在JVM内的堆上,并为其分配内存空间。堆空间由JVM垃圾回收器管理,称为堆内内存(on-heapmemory)2.虚拟机会定期对垃圾内存进行回收,有时......
  • jenkins打包内存溢出
    现象JavaScriptheapoutofmemory问题分析报错信息翻译过来就是JavaScript堆内存不足。这里说的JavaScript指的是Node。我们都知道Node是基于V8引擎,在一般......
  • onTrimMemory() 提示应用进行内存优化
    参考文档:  https://www.androidperformance.com/2015/07/20/Android-Performance-Memory-onTrimMemory/#/0-OnTrimMemory%E5%9B%9E%E8%B0%83%E7%9A%84%E4%BD%9C%E7%94%......
  • mac os 清理内存的终端命令
    1在终端输入:sudopurge回车,输密码,回车,搞定我电脑内存电脑立刻多了2多G2随着你使用Mac的时间越来越长,系统日志文件也会越来越多,根据电脑的用量、错误和服务,这些文件会越......