回覆列表
-
1 # 小嘟嘟熊
-
2 # 風科技
程式其實包括很多~庫檔案了~資原始檔等~
一般由一個主程式檔案統一調入使用!電腦在執行一個程式時會把主程式和需要馬上用到的連結資源等檔案調入記憶體使用!其他的其實還在硬碟中~隨著使用過程中的需要而動態載入!並不是一股腦的全進入記憶體!這也是程式設計中需要注意的問題!這樣子不但節約記憶體並且可以使程式更快的執行起來:因為需要的少調入記憶體的速度就快~當然等待執行的時間就少!
如果多個程式同時需要執行!作業系統還有一種機制叫做虛擬記憶體!它可以在硬碟空閒位置模擬一塊記憶體空間~如果執行程式超過記憶體容量~就把暫時不用的在後臺的程式從記憶體中轉移到虛擬記憶體中~需要用到時再進行調入記憶體的操作!這也是為什麼有的老舊電腦記憶體只有2g甚至1g~在切換任務時很慢的原因了!
-
3 # Vade
這種情況基本都會提示你記憶體不足無法執行,當然某些情況下系統會自動呼叫虛擬記憶體。虛擬記憶體預設由系統控制大小,使用硬碟的空間來作為虛擬的記憶體使用,已緩解記憶體不足帶來的問題。為什麼說是緩解而不是解決,那是因為硬碟的速度遠比記憶體要慢得多,如果物理記憶體不夠,使用虛擬記憶體的時候回造成系統軟體執行卡頓,無法獲得良好的使用體驗。
系統設定的虛擬記憶體一般比較小,當你需要更多記憶體的時候,可以手動去調節大小來適應需要。
-
4 # 斯卡維迪
遊戲安裝包 EXE 檔案超過記憶體很常見,這類程式主要是資源佔得多,程式啟動時,資源並不載入記憶體,由程式從硬碟檔案中讀取資源。
如果 EXE 檔案的 TEXT 部分超過可用的虛擬記憶體,作業系統是無法啟動它的。虛擬記憶體容量 = 物理記憶體條容量 - 系統載入程式佔用的物理記憶體容量 + 硬碟上的頁面檔案容量。
這個問題有點意思,大於電腦記憶體的程式有很多,但是主程式exe檔案我就沒見過大於記憶體的,一個遊戲客戶端有20GB,電腦在執行它的時候,不一定把它全部裝進去,一般只裝主程式exe,當要用到其他資源的時候。就把那個資原始檔裝進去,透過指標訪問或修改,處理完了肯定是要釋放的(消除)。
解析exe檔案,你會發現它的裡面有16個表,其中有匯入表,匯出表,資源表……等等,它們裡邊就是存放著需要用到的檔案資訊,比如檔名,記憶體偏移圖示,選單……等,
大檔案一般都是一個檔案包壓縮出來的,既然是壓縮的說明它裡面是由若干個小檔案合成的,要讀取它只需要轉到想讀取資料的偏移處就行了,像單一的大檔案只有媒體檔案了,mp4,mkv等,這些檔案都是有位元速率資訊的,播放器根據位元速率資訊一次讀取多少資料。
如果是20GB的大型txt檔案,用自帶記事本開啟它肯定是要卡死的,使用二進位制分頁讀取就解決了,
說真的如果真有exe大於電腦記憶體的,我也不知道會怎樣,