大陸的同事反應,系統顯示還有記憶體還有13%可以使用,32位軟件,使用168MB記憶體,但系統會顯示 out of memory 記憶體不足
這是購買的軟體沒有源碼,請問前輩們有類似解決的經驗嗎? 謝謝!
你誤判了記憶體的使用量.
工作管理員 (Task Manager) 裡面看到的只有 Private Working Set (私有工作集).
但實際上程式會用到的記憶體有兩大類:
以上任何一個區域的總容量發生不足, 都會引發某個程式發出 Out of memory 的訊息.
以下的圖片, 是分別打開: 資源監視器 (Resource Monitor, 畫面左邊) 和工作管理員 (Task Manager, 畫面右邊), 放在一起比較, 執行小畫家 (mspaint.exe) 這個程式的顯示結果:
可以明顯看出:
工作管理員(右半邊)後面顯示的 17.4 MB, 正好就是資源監視器(左半邊)裡面的 Private Working Set 那個欄位數據(17,868 KB). 但是右邊的工作管理員, 並沒有顯示其它占用記憶體的數據.(其他記憶體用量的數據, 在畫面左邊的資源監視器裡全部都有)
想要在工作管理員看到完整的記憶用量, 必須到:詳細資料頁籤那裡, 按右鍵叫出欄位設定, 把缺少的幾個欄位勾選起來, 他才會顯示出來:
而且他只會顯示 Shared Memory, 你要自己把他跟 Private Working Set 加起來, 才會是真正全部耗用掉的 Working Set. (自己加實在太麻煩了, 所以我都直接看資源監視器)
以上是只靠工作管理員觀察記憶體的時候, 最常見的誤判狀況.
(你一定想不到, 連原廠 OS 內建的工具, 都會有陷阱讓你踩....)
大部分 RAM 剩下很多, 但卻出現 Out of memory 狀況, 很有可能是因為 Commit size 不夠用造成的, 也就是 OS 的 Swap file (or disk) 滿了.
1.這問題常發生嗎? 還是第一次發生? OS版本?
2.是不是硬碟空間滿了?
3.別台也會這樣嗎? 別台沒問題的PC的記憶體空間剩餘多少?
4.檢查最近有安裝其他任何軟件?移除試試
如果你是用天心的ERP不如問天心比較快。
通常這是2個鍋
1.是系統自身管理記憶體的問題,以前DOS系統下為了玩遊戲,就常常為了幾KB在移來移去,下面是2019年的資料,若你有谷歌過就自行跳過。
https://answers.microsoft.com/zh-hant/windows/forum/all/windows/ca63381f-8acb-4c76-8c9d-c8e598e2ac36
2.另外一個鍋就是所使用的軟體有問題,在大量計算或是運算資料時,弄了一堆系統無法處裡的東東,下面也是2019年類似狀況的資料,若你有谷歌過就自行跳過。
https://allenkuo.medium.com/out-of-memory-%E9%9B%BB%E8%85%A6ram%E8%80%81%E6%98%AF%E8%8E%AB%E5%90%8D%E7%9A%84%E4%B8%8D%E5%A4%A0%E7%94%A8-ffd35d91db7
3.若以解決,那請自行跳過本段回答,並說一下解決經驗,給大家參考一下,互利互惠。