标签: c++ c gcc clang
我正致力于优化程序,并且在代码中发生微不足道的变化(例如,添加一个永不运行的if-else分支)将导致代码性能的2-3%变化,我有理由相信原因是额外的程序集移动高速缓存行周围的热函数会因指令高速缓存而改变程序的性能特征。这使得测量使代码速度提高1%的优化变得非常困难。
对于如何在分析时最小化这种差异,您有什么建议吗?
例如,是否有任何clang / gcc标志在中间函数之间添加了大量填充并将它们与缓存行对齐?