cpu 占用高 我有一个20M的MFC程序包含动态库文件,但是每次运行起来,cpu的占用率达到30%以上,这个程序不是很复杂,有什么办法能检测程序在哪里占用cpu资源这么高。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个就不好说了,空循环一样耗费CPU的 要是新开的线程造成的话,最少也接近50%检查一下OnIdle? 方法一:推测法根据你的程序的用途,推测主要的功能运算在哪里,然后查找可能占用CPU比较高的部分方法二:给每个函数添加日志,如果调用平凡的方法采用内联方式 用 ProceXP.exe,选中你要看的进程,双击,查看 threads 项的 CPU,从 StartAddress 可看出是哪个线程,双击,CPU 高的线程,可查看调用栈,如果你设置了 ProceXP.exe 的 Configure Symbols path,你可以从 弹出的调用栈,直接看到是哪个函数导致 CPU 高。 总结一下:1 给每个函数添加日志,然后运行起来后,看日志那个函数被调用最多2 用 ProceXP.exe,选中你要看的进程,双击,查看 threads 项的 CPU,从 StartAddress 可看出是哪个线程,双击,CPU 高的线程,可查看调用栈,如果你设置了 ProceXP.exe 的 Configure Symbols path,你可以从 弹出的调用栈,直接看到是哪个函数导致 CPU 高。3 猜测4 分段删除法5 其他检测程序, 今天才知道Visual Assist X这东西,相见恨晚啊 vc++ 如何用HTTP get方法请求一个jsp页面 得到服务器返回数据 mfc中当窗口最小化或者变为托盘图标之后怎么捕捉窗口消息呢 双缓冲绘图及滚动条问题 高人请进:CxImage库的错误!!! 为什么dc画出的位图是黑框呢? Dialog界面和View界面有什么不同? 在VC下如何写DLL,我用VC向导生成了一个空的DLL。 急:PSAPI.H为什么不能正常被!使用 Atl制作com组件,使用socket的奇怪问题,Up有分!! 关于CToolTipCtrl的问题... 请教关于CComboBox 问题
检查一下OnIdle?
根据你的程序的用途,推测主要的功能运算在哪里,然后查找可能占用CPU比较高的部分
方法二:给每个函数添加日志,如果调用平凡的方法采用内联方式
1 给每个函数添加日志,然后运行起来后,看日志那个函数被调用最多
2 用 ProceXP.exe,选中你要看的进程,双击,查看 threads 项的 CPU,从 StartAddress 可看出是哪个线程,双击,CPU 高的线程,可查看调用栈,如果你设置了 ProceXP.exe 的 Configure Symbols path,你可以从 弹出的调用栈,直接看到是哪个函数导致 CPU 高。
3 猜测
4 分段删除法
5 其他检测程序,