进程退出后占用的内存去哪了?
作为程序员我们需要知道,当进程结束后,进程占用的所有的内存空间将被操作系统回收,包括函数调用使用的栈、动态内存分配使用的堆、代码段中的机器指令、数据段中的全局变量等。所谓回收,就是将进程所占用的内存空间标记为可用,可以用于其它用途了。而当进程运行时这些所占用的内存是不可以用作其它用途的。因此,我们不用担心堆区上动态分配的内存在程序结束后没有释放,这是不会造成内存泄漏的,因为进程退出后包括堆区在内所有占用的内存都会被操作系统回收,如图所示:
因此如果程序存在内存泄漏但是又一时找不出原因的话,可以通过不断重启进程来解决内存不断上涨的问题,直到找到问题的原因。
本人曾经就遇到过内存小幅度增长,但找不到,后来就使用不断重启来解决的。