程序运行速度减慢

羽飞 2012-05-24 09:36:04
最近搞了一个程序,里面会循环计算某个东西,但是运行的时候那个循环计算的地方越来越慢,用任务管理器查看,没有内存溢出。

请教各位大神,导致程序运行减慢的原因都有哪些?

还有个关于VC Debug版本和Release版本的问题,现在假设我的代码分为两部分:A和B。Debug版本中A运行时间109ms,B运行时间410ms,Release版本A部分运行172ms,B部分运行16ms。有没有大神遇到过类似情况,请指点。
...全文
212 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
羽飞 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

没泄漏的话多半是逻辑问题,分块输出时间定位到底是哪里的处理变慢了
release开了优化,显然会比debug的要快
[/Quote]
我用任务管理器观察,没有发现内存泄露
再次请教大神们,都有什么情况会导致程序速度运行减慢的?
羽飞 2012-05-24
  • 打赏
  • 举报
回复
诸位大神解释Debug和Release的时候忽略了个东西,把我的程序分两部分,A部分Release比Debug慢,B部分Release比Debug快
我不明白的是为什么会出现A部分这样的情况,什么情况下才会出现这样的问题?
Isnis-fallen 2012-05-24
  • 打赏
  • 举报
回复
Debug的程序里面有调试信息库,调试用堆栈等信息。
调试版本的分配内存会事先在内存中初始化,而Release版本就不管了。
调试版本包括了每个执行码对应的源代码信息,Release版本去掉了。
调试版本的堆栈,比较复杂,如果被破坏会被检查出来,Release版本不检查了。
ouyh12345 2012-05-24
  • 打赏
  • 举报
回复
测一下performance,看看在哪些地方花了太多时间
确保在计算后面的数时,不会再需要计算以前的数
nice_cxf 2012-05-24
  • 打赏
  • 举报
回复
没泄漏的话多半是逻辑问题,分块输出时间定位到底是哪里的处理变慢了
release开了优化,显然会比debug的要快
haunying3 2012-05-24
  • 打赏
  • 举报
回复
调试-》启动性能分析
haunying3 2012-05-24
  • 打赏
  • 举报
回复
可以用vs2010的性能分析工具,对程序进行分析,找出问题所在
具体的可见其他网友写的一篇博文
链接地址
http://www.cnblogs.com/smark/archive/2011/10/12/2208039.html
赵4老师 2012-05-24
  • 打赏
  • 举报
回复
检查是否资源泄漏的办法之一:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!
localxiao 2012-05-24
  • 打赏
  • 举报
回复


上VTUNE去分析,看看函数热点在哪里

有试用版下载的
羽飞 2012-05-24
  • 打赏
  • 举报
回复
不是说个程序就可以贴出来的,一大堆,贴出来也没人看
请教大神的经验就满足了
Furney 2012-05-24
  • 打赏
  • 举报
回复
重复计算的结果可以保存为静态数据。
haunying3 2012-05-24
  • 打赏
  • 举报
回复
没程序,说什么
我写的程序debug处理1个文件要一分半
release处理31个文件只用一分20秒

64,685

社区成员

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

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