12 c# wow64 visual-studio
我有一个C#应用程序,必须与32位库链接,还需要使用尽可能多的内存(成像应用程序); 我们在XP64桌面上运行应用程序,因此我们使用WOW64,在Visual Studio for x86中定位构建(并进行editbin /largeaddressaware后期构建).我们遇到了一些问题:
在Visual Studio内置调试器中,我们只能使用2GB的内存(〜1.5gb到应用程序,加上开销)
从命令行运行,应用程序可以看到3GB的内存,但Microsoft文档似乎说我们应该看到4GB.
任何人都可以告诉我如何获得一个WOW64 C#应用程序,以查看该平台应该能够提供的完整4gb吗?
另外,任何人都可以告诉我如何让Visual Studio(VS 2008,也称为VS90)调试器服从该/largeaddressaware位并停止将应用程序内存限制为2gb ?
我在VS80和VS90中看到了相同的行为; .NET Framework 3.5,3.0和2.0之间也没有区别.这是一个简单的C#程序,用于说明问题; 为x86构建editbin /largeaddressaware,然后在内置调试器中运行,而不是从命令行运行,以查看C#可用的内存差异.
namespace MemoryAllocTest
{
class Program
{
static void Main(string[] args)
{
const int allocSize = 1024 * 1024;
List<byte[]> myMem = new List<byte[]>();
UInt64 totalAlloc = 0;
while (true)
{
myMem.Add(new byte[allocSize]);
totalAlloc += allocSize;
Console.WriteLine("{0} allocs: {1}MB total",
myMem.Count, totalAlloc / (1024 * 1024));
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何让Visual Studio(VS 2008,也称为VS90)调试器服从/ largeaddressaware位并停止将应用程序内存限制为2gb?
这需要两个步骤 - 在项目属性中:
通过这两个步骤,您的示例程序运行到3045MB
| 归档时间: |
|
| 查看次数: |
1888 次 |
| 最近记录: |