作为一名程序员,在许多情况下,我发现我的编译时间比我想要的慢,我想了解原因并加以修复。特定语言(是的,我正在使用C / C ++)技巧已经被讨论过,并且我们应用了许多这些技巧。我也看到了这个问题,并意识到它与此有关。我更感兴趣的是人们用什么工具来诊断构建过程中的硬件/系统瓶颈。是否有一种标准方法来证明“磁盘读/写速度对于我们的构建太慢了 - 我们需要SSD!”或“杀死我们的构建时间的反病毒设置!”等等?
我找到的资源与编译性能诊断无直接关系:
- TechNet文章介绍了如何使用PerfMon(相当不错,接近我想要的)
- 这个IBM链接详细说明了一些PerfMon信息,但它不是针对编译而特定的,而且似乎有点过时。
- 一个网页专门描述了平均磁盘队列长度的诊断
目前,诊断缓慢的构建非常依赖经验,我选择的工具是:
- PerfMon
- Process Explorer
- Process Monitor
- 尽可能地让机器“尝试一下”。 (基本上是试错法。)
其他人如何诊断系统级构建性能瓶颈?我们能否列出要观察的PerfMon或Process Explorer统计信息,并确定现代计算机的“可接受”阈值?
PerfMon:
- CPU -> 处理器时间的%
- MEMORY -> 每秒页数
- DISK -> 平均磁盘队列长度
Process Explorer:
- CPU -> CPU
- DISK -> I / O Delta Total
- MEMORY -> 页面错误