C++中的全局变量、静态变量检查

cherima006 2015-11-27 04:20:45
实际情况是这个样子的:
一个dll,只有几兆大小,在加载之后,内存提交大小增加了几百兆。

怀疑是代码中有很多的全局变量、常量、静态变量等,造成巨大的开销。

但是……代码很多,不可能一行一行地看,最好能使用一种全局检查的方法,第三方工具之类。

请问各位有什么好的方法没有???
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cherima006 2015-11-30
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
PEBrowserPro

VMMap 是进程虚拟和物理内存分析实用工具。http://technet.microsoft.com/zh-cn/sysinternals/dd535533




用了PEBrowsePro,发现这个地方内存巨大,但是并不知道是从哪儿申请的,接下来要如何分析?
cherima006 2015-11-27
  • 打赏
  • 举报
回复
引用 3 楼 lianshaohua 的回复:
内存使用大与全局变量、静态变量可能没有关系;很有可能是动态申请了大的内存,比如:new char[100*1024*1024]或有很多数据加载到了内存缓冲区(100*1024个1kb的对象) 所以导致内存增大的有多种原因;如果在linux下可以使用ltrace跟踪一下到 底是干了什么
但是程序刚加载就已经非常大了,还在main函数第一句,什么库函数都还没调
ztenv 版主 2015-11-27
  • 打赏
  • 举报
回复
内存使用大与全局变量、静态变量可能没有关系;很有可能是动态申请了大的内存,比如:new char[100*1024*1024]或有很多数据加载到了内存缓冲区(100*1024个1kb的对象) 所以导致内存增大的有多种原因;如果在linux下可以使用ltrace跟踪一下到 底是干了什么
赵4老师 2015-11-27
  • 打赏
  • 举报
回复
PEBrowserPro VMMap 是进程虚拟和物理内存分析实用工具。http://technet.microsoft.com/zh-cn/sysinternals/dd535533
paschen 版主 2015-11-27
  • 打赏
  • 举报
回复
找个看PE文件结构的软件

64,654

社区成员

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

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