剖析的艺术:使用Intel VTune Amplifier,第8部分(终章)

原文:https://hadibrais.wordpress.com/2017/07/30/the-art-of-profiling-using-intel-vtune-amplifier-part-8-final/

Hadi Brais

       本系列的第1部分第2部分第3部分提供了剖析入门及怎样配置VTune。在第4部分中首次讨论优化,大大减少了printf执行次数。在第5部分中第二次讨论优化,strlen被更为廉价的方式使用。在第6部分中第三次讨论优化,报告进度所需要的次数被大量减少。在第7部分中第4次讨论优化,函数do_pswd被内联到调用者。下面图表显示了优化后提升密码破解吞吐量的曲线情况。

      

       所有4次优化都是有意义的,尽管printf优化带来了最大效果。通常情况下,推荐减少I/O,或改为异步I/O,或是在专用线程中处理I/O,图形绘制也是一样的。这里有个有趣的事情,编译器在内联do_pswd这个重要点上失效了,我们不得不手动处理它。也许我们使用配置文件引导优化(PGO),编译器很可能会自己解决它。为了保持本系列的简洁性,这里我避免深入到算法,微型框架,并行优化中去,可能会在以后的文章中讨论它们,VTune在这些方面也会发挥作用。