1
5
|
2
0
如果您试图从这些循环中提取真正最大的性能,那么我建议您在汇编程序中编写整个循环构造。您应该能够根据循环中涉及的数据结构使用内联程序集。如果可以展开循环的任何部分(比如使访问非顺序进行的部分),则效果会更好。 |
3
0
冒着问显而易见的风险:您验证了编译器的目标体系结构吗?例如(幽默我),如果默认情况下编译器的目标是arm7,那么 从未 去看PLD指令。 |
4
0
其他优化,如 software pipelining 和 loop unrolling 可以实现与预取思想相同的效果(通过将加载延迟与有用的计算重叠来隐藏加载延迟),但不需要额外指令导致的额外指令缓存压力。我甚至会说,这种情况经常发生,因为紧凑的内部循环往往指令很少,控制流也很少。您的编译器是否改为执行这些类型的传统优化?如果是这样的话,也许值得查看管道图来开发一个更详细的处理器工作方式的成本模型,并更定量地评估预取是否有帮助。 |