Windows XP的程式使用大於2GB的記憶體
由於使用BCB開發C++大型圖檔的處理程式時,只要配置到2GB以上的記憶體後,就會產生bad_alloc的例外,
導致無法用BCB處理超大型圖檔。但是,在大學課程中所說的是:32位元的程式能夠使用最多4GB的記憶體,
為何現在只能用2GB?
原來是因為Windows XP與較舊的系統,為了確保OS能夠維持系統運作,將單一程序的記憶體使用量限制在2GB,
如果需要使用大於2GB,就會需要關閉Windows XP的限制。
解除限制的方法分為兩個步驟
1. 設定OS的開機選項中boot.ini的參數
在「我的電腦」右鍵「內容」→切換成「進階」頁面→由上往下第三個「設定」→「編輯」→加入 /3GB的設定
2. 用工具程式對程式進行微調
利用Visual Studio 2008 所提供的工具Editbin做編輯(Express版也有提供)開啟Visual Studio 2008的命令提示字元鍵入editbin.exe /LARGEADDRESSAWARE "你的程式路徑"
如此一來,就能夠開始充分利用3GB(for win xp)/4GB(for win 7 64bit)的程式空間
附註: 這個小工具可以很方便的完成第二個步驟的工作。
參考資料
如何使用 4GT RAM 微調功能
關於Win2K Advance Server 中 boot.ini的/PAE /3GB 設定問題
MSDN:Memory Limits for Windows Releases
How to make Windows XP Pro give more than 2GB of memory to Poser 6
Windows XP 和 Windows Server 2003 Boot.ini 檔可用的參數選項
留言