如果操作系统发现有大量的内存被分配给某个进程但该进程未使用到这些内存即出现了内存泄漏 这些释放出来的内存会被送到哪里去呢?

如果操作系统发现有大量的内存被分配给某个进程但该进程未使用到这些内存即出现了内存泄漏 这些释放出来的内存会被送到哪里去呢?

蓝小红-相遇不过恩泽一场。
蓝小红 相遇不过恩泽一场。

在某些情况下,当一个程序没有及时回收已经使用的资源时就会出现这种情况。这会导致系统中的一些内存空间一直处于闲置状态而不能用于其他用途。这时,垃圾收集器(Garbage Collector)会将这个无用的内存空间标记为“可回收”的区域并交给了操作系统进行回收和重新利用。所以,即使你忘记了申请或释放了一些内存块也不会影响你的工作流程或者导致任何错误信息输出。

评论/回答
在评论里试试@好友|或者#文章/问答吧~

用户评论(8)

精选 有用
精选
梁勇-一叶遮目,不见泰山。
梁勇 一叶遮目,不见泰山。

当一个进程申请了太多的内存,但是这个进程并没有完全地使用了所有的内存时。系统就会将这部分没有使用的内存回收起来并返回给了其他正在运行的任务或者用户空间中进行缓存等操作处理 。所以当你在程序里申请了很多很多内存的时候 你需要考虑好如何避免这种情况发生

4个月前

林云-有些事情不是难以做到才失去信心,而是因为失去信心才难以做到。
林云 有些事情不是难以做到才失去信心,而是因为失去信心才难以做到。

当一个进程没有使用的内存时,它将返回到系统中。这称为“页面回收”或“虚拟内存回收”。这个过程是自动的并且由内核完成。在Linux和Unix上,这个过程中通常会使用LRU(最近最少使用了)算法来选择要回收的页数。

4个月前

钱畅-今夜我不关心人类,我只想你。
钱畅 今夜我不关心人类,我只想你。

这取决于系统。有些情况下,释放的内存可能会在堆栈中保留一段时间以备将来可能需要用到的地方;而其他情况则会直接从堆栈中移除并重新用于新的申请(如创建新对象)或向内核发送信号进行回收处理等等。

4个月前

屈丽华-这世间本就是各人下雪,各有各的隐晦皎洁。
屈丽华 这世间本就是各人下雪,各有各的隐晦皎洁。

当一个进程没有使用完所分配的内存时,系统会尝试将这部分空间回收。这个过程称为“垃圾收集”(Garbage Collection)或“自动管理器”Automatic Manager 。

4个月前

屈丽华-这座城市每个角落,都填满若有所思的生活。
屈丽华 这座城市每个角落,都填满若有所思的生活。

当一个进程在运行时没有用完它所占用的内存空间,那么这个剩余的空间就会被称为内存泄漏。这通常是由于程序中存在一些不正确的代码导致了这种情况发生…

4个月前

郁桂兰-如果生命能够重来,不论几次我都愿意与你相遇。
郁桂兰 如果生命能够重来,不论几次我都愿意与你相遇。

这取决于操作系统的内核。一些系统会将回收到堆上的页面存储在磁盘上,而其他则直接删除了这部分空间并重用它来存放新的数据块或索引表等信息。

4个月前

金淑兰-找对象长得过得去就行,重要的是找个把你当公主宠着的人,这才是嫁给爱情最好的样貌。
金淑兰 找对象长得过得去就行,重要的是找个把你当公主宠着的人,这才是嫁给爱情最好的样貌。

当一个进程没有使用了它所拥有的内存时,系统会尝试将这个内存返回给其他正在运行的任务。这称为页面回收或 页置换。

4个月前

金超-此刻人的穿衣,不是为了保暖,而是为了关键时候有衣可脱;此刻的人同居,不是为了结婚,而是为了不用结婚。
金超 此刻人的穿衣,不是为了保暖,而是为了关键时候有衣可脱;此刻的人同居,不是为了结婚,而是为了不用结婚。

这个问题有点复杂,需要进一步了解。但是通常情况下是通过垃圾回收机制来处理的。

4个月前