工具:vs2019
系统:win10
语言:C++
github 调试 demo: dangwei-90/ProcessOptimize (github.com)
本文主要通过 VS 自带的诊断工具,对程序进行CPU调优。
Begin
1. 编译测试 demo
读者可以通过 dangwei-90/ProcessOptimize (github.com) 下载,也可以自己编写测试 demo. 通过一个 while 循环来占用 CPU 资源。
void CProcessOptimizeDlg::TestCpu()
{
while (!is_stop_) {
std::cout << "test cpu" << std::endl;
}
}
void CProcessOptimizeDlg::OnBnClickedCpuTest()
{
is_stop_ = false;
std::thread cpu_thread(&CProcessOptimizeDlg::TestCpu, this);
cpu_thread.detach();
}
2. 通过 VS 诊断工具
先启动 debug 调试,然后按 CTRL+ALT+F2 ,开启诊断工具,如下图所示:
如果提示“已禁用使用快照分析....”,点启用即可。
3. 通过工具开始分析
程序运行一分钟后,点击全部中断。此时,可以通过工具,分析这一分钟内,各个函数对系统 CPU 的占用比例,以此分析出 CPU 占用高的方法,并对他优化。
如下图所示:
点击外部代码,查看详情:
根据该行,得知,从 TestCpu() 方法开始,CPU总计接近100%。点击该行继续查看:
左边会有 CPU 占比,可以得知,是由于 TestCpu() 方法中的 while 循环内容,占用了大量的 CPU 资源。
4. 分析结束
大家可以通过该方法,对自己的程序,进行 CPU 占用调优。
over.