我正在开发一个编译器,并编写了一个优化,实际上让我的代码变慢了!在调查它时,我发现代码生成器决定在我的优化关闭时使用句柄(在我们的编译器的情况下是双重引用),并在我的优化开启时使用指向句柄的指针!这导致在第二种情况下,每当访问数组时,就会产生一条更多的取消引用指令。
但是这条单条指令导致代码运行时间惊人地降低了 32%。我怀疑这与指令流水线有关,因为这种额外的取消引用会导致 3 个依赖指令,这可能解释了速度下降。
我需要演示同样的内容,并试图获得更多关于流水线的信息,如果有人能推荐一些关于指令流水线、有用的架构模拟器和流水线可视化器的好材料,那就太好了。