当前位置:  开发笔记 > 编程语言 > 正文

开发和调试记忆C#应用程序

如何解决《开发和调试记忆C#应用程序》经验,为你挑选了1个好方法。

我有一个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 myMem = new List();
        UInt64 totalAlloc = 0;

        while (true)
        {
            myMem.Add(new byte[allocSize]);
            totalAlloc += allocSize;
            Console.WriteLine("{0} allocs: {1}MB total", 
             myMem.Count, totalAlloc / (1024 * 1024));
        }
    }
}
}

Dave Ganger.. 5

任何人都可以告诉我如何让Visual Studio(VS 2008,也称为VS90)调试器服从/ largeaddressaware位并停止将应用程序内存限制为2gb?

这需要两个步骤 - 在项目属性中:

在构建事件选项卡上,设置postbuild步骤以运行editbin/largeaware $(TargetPath)

在调试选项卡上,取消选中启用Visual Studio主机进程

通过这两个步骤,您的示例程序运行到3045MB



1> Dave Ganger..:

任何人都可以告诉我如何让Visual Studio(VS 2008,也称为VS90)调试器服从/ largeaddressaware位并停止将应用程序内存限制为2gb?

这需要两个步骤 - 在项目属性中:

在构建事件选项卡上,设置postbuild步骤以运行editbin/largeaware $(TargetPath)

在调试选项卡上,取消选中启用Visual Studio主机进程

通过这两个步骤,您的示例程序运行到3045MB

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有