2

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

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

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

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

附加信息:

在旧站(Z600)上它可以正常工作。我们尝试在带有 Windows 7 sp1 64Bit 的 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 上遇到过这个问题或类似问题吗?我希望有人有答案:)

4

1 回答 1

0

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

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

于 2013-07-16T08:29:24.990 回答