仅在 HP Z620 站上发生的 C# Out Of Memory/COMException

标签 c# out-of-memory windows-7-x64 writeablebitmap comexception

我们的团队在做一个项目,目的是创建一个渲染器,它将在屏幕上渲染数据。 我们曾经在具有以下规范的 HP Z600 工作站上工作: 内存:6GB 6 核 处理器:Intel(R) Xeon(R) CPU X5650 @ 2.67GHz 2.66GHz 操作系统:Windows 7 32位 NVIDIA Quadro 4000

现在我们换到了更新的 HP Z620 Station,其规范如下: 内存:12GB 12 核 处理器:Intel(R) Xeon(R) CPU E5-1650 0 @ 3.20 GHz 3.20GHz 操作系统:Windows 7 sp1 64 位 NVIDIA Quadro 4000

我们尝试在新站上以 32 位仿真运行我们的 C# 和 c++\cli 代码,我们得到 Out Of Memory Exception\COMException 非常快,当我查看任务管理器时, 我看到应用程序的内存只有 450MB。 异常总是在同一个 Action 上抛出(但在代码的不同地方):

新的 WritableBitmap(宽度, 高度, 96, 96, PixelFormats.Bgra32, null)

附加信息:

在旧站(Z600)上它没有问题。 我们尝试在装有 Windows 7 sp1 64 位的 Z600 上运行它,它再次运行没有问题。 我发现的另一个问题是一个例子,它使用我们的渲染器在屏幕上渲染“.tif”文件,使用 Z600(使用 Windows 7 32 位或 64 位)渲染后应用程序的内存为 300MB(如果我运行应用程序的 .exe 文件或者我通过 Visual Studio 的调试器运行它),但是当我移动到 Z620(Windows 7 64 位)时,从 .exe 文件运行应用程序实际上只需要 300MB,但是当我通过 Visual Studio 运行它时(我尝试了 VS 2010 和 VS 2012)内存消耗高达 1000MB(取消选中 Visual Studio 托管进程没有帮助)。

我试图检查为什么会发生这种情况,但经过两天的搜索,我没有找到任何答案。 有人用 Z620 遇到过这个问题或类似问题吗? 我希望有人有答案:)

最佳答案

如果您使用的是 .Net 3.5,则 WritableBitmap 中存在一个已知错误。

http://social.msdn.microsoft.com/Forums/vstudio/en-US/5d88cdf1-e992-4ad4-8f56-b5dbf92dcf1c/possible-writeablebitmap-memory-leak

关于仅在 HP Z620 站上发生的 C# Out Of Memory/COMException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17671189/

相关文章:

java - 位图大小超过 Vm 预算错误 android

windows - 如何使用 COPY 命令附加到文件

c++ - C/C++ 静态链接错误 (LIBCMT.lib)

c# - Fluent NHibernate C# 中的基本关系问题

c# - 类成员和使用语句

c# - LINQ 在 XML 文件中创建新记录

https - 本地主机上的 IIS7 https 使用自签名证书

c# - 在 JSON web-api 上公开的对象 - 如何阻止属性名称更改大小写?

c# - 将 byte[] 数组的一部分复制到 PDFReader

Tomcat内存设置