2016-08-05 71 views
0

我對大量數據執行了一個C++程序,並且它運行了一個無限循環。我剛剛離開終端。但現在看看進程表明,仍然有一個分配12GB RAM的進程。再次釋放內存[Unix]

我是否必須手動殺死進程以再次釋放內存或系統在一段時間後是否釋放內存?

+6

如果進程仍在運行,那麼不,內存不會被釋放。操作系統不能隨意決定釋放一個進程的內存。那會嚴重影響整個過程。操作系統可以選擇無記憶的殺死一個進程,但它不會進入並將內存移走。 –

+0

感謝您的回答。所以我應該做$ kill PID? – cruxi

+0

@cruxi'ps-A'顯示什麼?你有殭屍程序嗎? –

回答

0

所以我應該做$ kill PID?

是的,如果你不想讓程序在死循環中運行,你應該殺死它,不僅要釋放內存,也不要浪費CPU時間。