當一個程序大於計算機內存時,計算機是如何運行的?

nicole4


這種情況基本都會提示你內存不足無法運行,當然某些情況下系統會自動調用虛擬內存。虛擬內存默認由系統控制大小,使用硬盤的空間來作為虛擬的內存使用,已緩解內存不足帶來的問題。為什麼說是緩解而不是解決,那是因為硬盤的速度遠比內存要慢得多,如果物理內存不夠,使用虛擬內存的時候回造成系統軟件運行卡頓,無法獲得良好的使用體驗。

系統設置的虛擬內存一般比較小,當你需要更多內存的時候,可以手動去調節大小來適應需要。

在“高級系統設置”裡面點擊“性能”選項裡面的“設置”按鈕

再點擊“高級”選項卡,在“虛擬內存”選項中點擊“更改”

點擊有剩餘空間的硬盤,再點擊“自定義大小”,輸入框中填入你想設置的空間,然後點擊“設置”,最後“確定”即可


Vade


這個問題有點意思,大於電腦內存的程序有很多,但是主程序exe文件我就沒見過大於內存的,一個遊戲客戶端有20GB,電腦在運行它的時候,不一定把它全部裝進去,一般只裝主程序exe,當要用到其他資源的時候。就把那個資源文件裝進去,通過指針訪問或修改,處理完了肯定是要釋放的(消除)。

解析exe文件,你會發現它的裡面有16個表,其中有導入表,導出表,資源表……等等,它們裡邊就是存放著需要用到的文件信息,比如文件名,內存偏移圖標,菜單……等,

大文件一般都是一個文件包壓縮出來的,既然是壓縮的說明它裡面是由若干個小文件合成的,要讀取它只需要轉到想讀取數據的偏移處就行了,像單一的大文件只有媒體文件了,mp4,mkv等,這些文件都是有碼率信息的,播放器根據碼率信息一次讀取多少數據。

如果是20GB的大型txt文件,用自帶記事本打開它肯定是要卡死的,使用二進制分頁讀取就解決了,

說真的如果真有exe大於電腦內存的,我也不知道會怎樣,


小嘟嘟熊


程序其實包括很多~庫文件了~資源文件等~

一般由一個主程序文件統一調入使用!電腦在運行一個程序時會把主程序和需要馬上用到的鏈接資源等文件調入內存使用!其他的其實還在硬盤中~隨著使用過程中的需要而動態加載!並不是一股腦的全進入內存!這也是程序設計中需要注意的問題!這樣子不但節約內存並且可以使程序更快的運行起來:因為需要的少調入內存的速度就快~當然等待運行的時間就少!



如果多個程序同時需要運行!操作系統還有一種機制叫做虛擬內存!它可以在硬盤空閒位置模擬一塊內存空間~如果運行程序超過內存容量~就把暫時不用的在後臺的程序從內存中轉移到虛擬內存中~需要用到時再進行調入內存的操作!這也是為什麼有的老舊電腦內存只有2g甚至1g~在切換任務時很慢的原因了!


分享到:


相關文章: