Debug程序虚拟内存问题

guogeer 2014-06-26 04:36:38
大家好,小弟最近碰到个棘手的问题。
最近,项目从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;
我这个程序应该没有内存泄露问题的,这点我可以确定。
...全文
362 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
guogeer 2014-06-30
  • 打赏
  • 举报
回复
通过任务管理器查看!
Johnblx 2014-06-30
  • 打赏
  • 举报
回复
引用 8 楼 guogeer 的回复:
问题是程序从vs2003迁移到vs2010,发现debug程序占用的内存从1.5G增加2.5G,不知道该如何解决内存占用过大的问题。
如何看内存从1.5G增大到2.5G,
guogeer 2014-06-30
  • 打赏
  • 举报
回复
问题是程序从vs2003迁移到vs2010,发现debug程序占用的内存从1.5G增加2.5G,不知道该如何解决内存占用过大的问题。
ocean1002 2014-06-27
  • 打赏
  • 举报
回复
我怎么没看懂LZ要问什么问题。。。。。

Debug调试时,VS2003编译的程序运行虚拟地址空间需要1.5G,但是VS2010虚拟地址空间却需要2.5G,相差甚大
2003你连接的是2003的库,2010连接的是2010库。。。怎么会一样。。。。产生的二进制文件大小都不一样吧。。。。 而且调试时和你的IDE也有关系啊。。。。。vs2010比2003大多少。。。
zilaishuichina 2014-06-27
  • 打赏
  • 举报
回复
比如 你的项目里面有一个文件重载了new运算符,把本来的系统分配改为了内存池分配。 vs2003里面 有引用这个文件, 你在迁移到2010的时候漏掉了这个文件, 或者宏开关没有打开。 都有可能导致内存的增长的。 所以lz应该还是先检查下,代码是否完全一致。宏开关是否完全一致。第三方库是否完全一致。
zilaishuichina 2014-06-27
  • 打赏
  • 举报
回复
这个不一定是lz你列的这些 编译选项的问题吧, 比如是不是引用的第三方库,lib,dll你搞错版本了 比如include directories里面的头文件,你vs2010 和 vs2003里面引用的是否一样。 比如预编译头preprocessor definitions 里面定义的宏,你vs2010 和 vs2003里面定义的是否一样。
mujiok2003 2014-06-27
  • 打赏
  • 举报
回复
Release版呢? 研究debug版意义不大。
guogeer 2014-06-27
  • 打赏
  • 举报
回复
CreateFileMapping?这是看了我的问题么?
赵4老师 2014-06-27
  • 打赏
  • 举报
回复
引用 2 楼 guogeer 的回复:
CreateFileMapping?这是看了我的问题么?
你的问题是不会在内存需求太大的时候使用内存映射文件。 按尺寸大小从小到大排序: 局部堆栈<全局数据<堆<内存映射文件<文件<硬盘<磁盘阵列<云存储<整个互联网
赵4老师 2014-06-26
  • 打赏
  • 举报
回复
为什么不用CreateFileMapping呢?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧