4

我在运行创建一个非常大的字节数组(~4GB)的测试时遇到了一些问题。

当我在发布/调试模式下运行它时,一切正常,但是当我运行一个初始化这个数组的测试时,我得到 OutOfMemory 异常

for (int i = 0; i < 56000; i++)
{
    m_BlocksFree.Enqueue(new byte[65536]);
}

起初我想,因为我有很多初始化这个大数组的测试,所以我得到一个内存不足的异常,但即使在运行单个测试时我也会得到同样的异常。

我用 C# 编写并使用 MSTest、Rhinomocks 和 structureMap、win7 64 位。

感谢帮助者:)

4

2 回答 2

5

发现问题...

该测试使用 QTAgent32(32 位)而不是 QTAgent(64 位)。

解决方案是在测试设置(在主机下)中选择“在 64 位机器上以 64 位进程运行测试”。

于 2013-06-13T23:15:12.483 回答
2

它对我有帮助:editbin /LARGEADDRESSAWARE "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent32.exe"

于 2014-01-17T06:36:13.063 回答