none
VS2003迁移到VS2010,虚拟内存问题 RRS feed

  • 问题

  • 我有一个C++项目,最近需要从VS2003迁移到VS2010上,调试编译成功后运行,发现使用的虚拟内存太大了。如何解决这个问题呢?
    2014年6月25日 8:28

全部回复

  • 你好,

    根据你的描述,我认为你可以从两个方面考虑:

    第一个方面是,你的C++项目有无内存泄漏问题,该项目运行到底需要多大的内存空间,你可以通过调试项目或使用一些监测工具,检查一下项目是否有内存泄漏的情况;

    至于如何检测内存泄漏,你可以参考如下链接:

    Detecting and Isolating Memory Leaks

    Memory leak detection in C++

    第二个方面是,你的系统对虚拟内存的设置具体为多少,在允许的条件下,可以适当调整虚拟内存的值;

    该链接中有关于XP和windows7 系统下,如何设置虚拟内存的详细图解步骤,你可以参考去设置。

    http://www.wikihow.com/Fix-Virtual-Memory

    May


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年6月26日 6:53
  • 谢谢你回答我的问题,可能我问题也没有说清楚。是这样的,项目是从VS2003迁移到VS2010上来,Debug调试时,VS2003编译的程序运行虚拟地址空间需要1.5G,但是VS2010虚拟地址空间却需要2.5G,相差甚大。这是编译的命令参数——

    /ZI /nologo /W3 /WX- /O2 /Oy- /D "WIN32" /D "DEBUG" /D "_LIB" /D "_MBCS" /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /GR  /Gd /analyze- /errorReport:queue (去除了头文件、库、程序数据库等选项。)

    XP系统默认虚拟地址空间是2G,当然可以扩大到3G;我这个程序应该没有内存泄露问题的,这点我可以确定。我前面所说的“虚拟内存”概念是指“虚拟地址空间”。

    苦恼中……

    谢谢~



    • 已编辑 guogeer 2014年6月26日 8:31 部分词语有误
    2014年6月26日 8:29