(1) Profile Function or Loop Execution Time
Intel编译器的除了使用profile进行PGO优化之外,也提供了对程序的函数或循环执行时间进行profile的功能。之所以把这一功能和PGO优化放在一个部分,是因为它们有一些相同之处:都是通过编译器在编译时给生成的可执行文件中插入辅助代码(测试代码,instrumentation code),对于PGO,这些辅助代码会在运行的时候产生dyn文件以供编译器优化使用,对于这里的执行时间的测试,这些辅助代码的作用就是用于收集代码中不同位置的时间消耗数据,这些数据就能帮助我们标识代码的热点(hotspots),从而对特定部分进行优化。
注意:如果使用过VTune等性能分析工具,就对热点这些概念很熟悉了。那么这里的功能是编译器的功能,而VTune是不要求必须使用Intel编译器的,它们的作用有些类似,但是实现方式不同,编译器的这个功能是通过在可执行文件中插入了辅助代码,而VTune是通过采样来收集数据的。
(2) 函数或循环执行时间评测的级别
根据插入的辅助代码的不同,编译器对profile execution time分为三个级别:
•function level函数级别
•f