请问这两种优化技术是相同的还是不同的?
此外,这是程序员还是编译器的责任呢?
请问这两种优化技术是相同的还是不同的?
此外,这是程序员还是编译器的责任呢?
这是两种完全不同的性能优化。
循环展开是一种代码优化,其中代码在循环内被复制,并且总循环次数减少。好处是减少循环开销(通常仅适用于非常小的循环),以及通过减少超标量CPU中依赖关系停顿来实现更好的指令调度。这可以手动和/或作为编译器优化来完成。
平铺是一种内存优化,旨在通过处理瓷砖(较大数据结构中的小块)来更好地利用缓存,通常在图像或其他2D数据结构的上下文中实现。这通常在源代码级别上实现,作为算法实现的整体设计的一部分。