為什麼記憶體不足應用變卡

2022-06-18 09:48:09 字數 488 閱讀 8629

前提,解釋windows。

windows在記憶體排程的時候會使用到虛擬記憶體(也叫頁面檔案)來排程記憶體空間。這其實為當時記憶體不夠用準備的。當系統需要更多記憶體去開乙個新的程序的時候,發現記憶體並不夠開啟乙個新的程序,但是又不能將任意乙個已經開啟的程序殺掉來換取記憶體,沒有辦法,只能將一些冷程序掛起,並將記憶體寫入硬碟的特定區域來騰出記憶體空間。

這個時候某些程序就被寫進了硬碟,由於硬碟讀取速度慢,在系統有大量程序寫入硬碟時,會出現硬碟和內存在不斷交換資料的現象。典型例子就是chrome,當你開啟100個網頁(比如說刷100頁**),正在瀏覽的網頁尚且流暢,但是突然切換到某個網頁,可能這個網頁已經變成空白或者不能操作了。過一段時間之後這個頁面就會恢復,儘管說不像ios那樣需要reload,但是也會耗費一定程度的時間來排程記憶體和硬碟中的虛擬記憶體。

記憶體和硬碟不斷交流資料,會讓系統變得非常慢,尤其是虛擬記憶體特別吃硬碟的4k效能和尋道時間,這就是低記憶體機器換ssd之後電腦會飛快的原因,以為虛擬記憶體和記憶體的交換速度明顯的提公升了。

Winform 記憶體不足

winform 記憶體不足 winform,我給picturebox 賦值 picbox one.backgroundimage image.fromfile 解決方案 picbox one.backgroundimage 每賦值一次,都要把上一次的拉出來釋放掉 c codeif picbox on...

linux 記憶體不足

在linux下增加臨時swap空間 sudo dd if dev zero of home swap bs 64m count 16注釋 of home swap,放置swap的空間。count的大小就是增加的 swap 空間的大小,64m 就是塊大小,這裡是 64mb,所以總共空間就是bs cou...

Mysql記憶體不足問題

1.啟動mysql時一直不成功,檢視錯誤日誌 var log mysql error.log 2.主要的錯誤資訊有如下幾條 error innodb mmap 136151040 bytes failed errno 12 error innodb cannot allocate memory fo...