进程退出后,泄漏在其中的内存会被os回收,小弟我的观点是不是准确的
进程退出后,泄漏在其中的内存会被os回收,我的观点是不是准确的 ?
malloc申请的内存在heap里,进程exit后,进程的heap区就还给os了,
所以泄漏就不存在了。
对不对 ?
------解决方案--------------------
每个进程起来用的内存都是虚的,不是有整个操作系统统一分配的,所以你的进程即使异常退出了,也不会影响整个OS的运行。其实也不存在进程的Heap区还给OS,因为他的Heap是专属进程的,进程结束了,也就没了,而且这个Heap不是从OS中的某部分内存分出来的
------解决方案--------------------
应该是对的。内存泄露只发生在在进程运行过程中
------解决方案--------------------
对于现在的操作系统而言是这样的;
不过比较老的就不是这样,所以当时内存泄露,是个很大的问题。
------解决方案--------------------
是由,打错了不好意思。
我的意思是,每个进程都有自己专属的内存空间。当操作系统创建一个新的进程出来,就为他分配了一定的内存(不是所有进程共用同一个内存),但是这个内存不占用操作系统本身内存,也不受物理内存的限制,只有当进程运行时访问到某些内存没有对应物理内存时,操作系统才将信息加载到物理内存中。我的表达能力有限,可能会带有误导性,给个关键字:虚拟内存,搜索下。
------解决方案--------------------
进程exit,进程的所有自有内存,都会释放掉,包括heap区。
malloc申请的内存在heap里,进程exit后,进程的heap区就还给os了,
所以泄漏就不存在了。
对不对 ?
------解决方案--------------------
每个进程起来用的内存都是虚的,不是有整个操作系统统一分配的,所以你的进程即使异常退出了,也不会影响整个OS的运行。其实也不存在进程的Heap区还给OS,因为他的Heap是专属进程的,进程结束了,也就没了,而且这个Heap不是从OS中的某部分内存分出来的
------解决方案--------------------
应该是对的。内存泄露只发生在在进程运行过程中
------解决方案--------------------
对于现在的操作系统而言是这样的;
不过比较老的就不是这样,所以当时内存泄露,是个很大的问题。
------解决方案--------------------
是由,打错了不好意思。
我的意思是,每个进程都有自己专属的内存空间。当操作系统创建一个新的进程出来,就为他分配了一定的内存(不是所有进程共用同一个内存),但是这个内存不占用操作系统本身内存,也不受物理内存的限制,只有当进程运行时访问到某些内存没有对应物理内存时,操作系统才将信息加载到物理内存中。我的表达能力有限,可能会带有误导性,给个关键字:虚拟内存,搜索下。
------解决方案--------------------
进程exit,进程的所有自有内存,都会释放掉,包括heap区。