在linux写的C语言程序,使用top查看内存的使用率不断的增加?
在linux写的C语言程序,使用top查看的使用率不断的增加,直到程序死机。然后写了一个测试程序,只是简单的while(1)死循环,用top查看,内存也是再不断的增加,不知道是什么问题。还有就是关闭程序之后,占用的内存也不会被释放,重新打开程序之后,内存在关闭的基础上重新增加。这个是什么问题。请高手指教。
根据你的描述,我判断很有可能是你的程序中有死循环造成的,是不是内存泄露还需要进一步判断。 linux的内存管理和windows不同,linux的内存分配原则是优先使用物理内存,只有在物理内存满足不了需要时,才进行物理内存和虚拟内存的交换;windows则是根据一定的比例进行虚拟内存和物理内存的交换;因此,linux系统的物理内存使用量是不断增减,指导95%以上才会稳定,其实是linux为提高系统性内进行的物理内存使用优化,这样能够提高物理内存使用率,提高性能。 如果你的进程关闭,linux系统也不会马上释放内存,等到其他进程请求内存而且物理内存不足时才去释放。 这里linux的内存管理机制。