Windows 7 モードで x86 で実行した場合にのみメモリ不足になる .NET アプリケーションがありますが、次の例外があります。
8/4/2013 11:36:52 AM: Main application context(1) CriticalError: Exception in Application context Run: Main application context : Parameter is not valid. at System.Drawing.Image.get_Width()
at System.Drawing.Image.get_Size()
at DevExpress.XtraBars.BarItem.IsSameSize(Image old, Image newImage)
at DevExpress.XtraBars.BarItem.set_Glyph(Image value)
at NordicIT.Mark5.Module.DM.Editor.frmEditorRibbon..ctor()
at NordicIT.Mark5.Module.DM.Editor.frmEditorRibbon..ctor(IEditFormForBOOptions editFormForBOOptions)
at NordicIT.Mark5.Module.DM.Actions.TDMActions.<>c__DisplayClass19.<_DocumentTransmitProcess>b__17()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
メモリ消費量は約 400 mb で、GDI オブジェクトは約 1500 を消費しました (レジストリでこれらの制限を増やしたので、約 10000 まで問題ありません)。
x86 の Windows Server 2008 R2 で同じアプリケーションを実行しても問題はありません (Windows 7 と同じカーネルが必要です)。x86 の Windows XP でも問題ありません。
最大 2 GB のメモリを使用しても、x64 モードで例外が発生することはありません。
私が到達しているメモリの限界を理解するのを手伝ってください。