---
title: 总结
description: "我们在编写代码时，除了要考虑汇编指令本身的优化，还需要考虑流水线的编排对性能的影响，在做流水线编排时，要尽量减少互锁的发生。CPU可以在大部分情况下工作良好，并且编译器已经为乱序处理器优化了近20年。当指令和数据按照顺序执行时，CPU可以获得最好的性能。"
url: https://www.hikunpeng.com/document/detail/zh/perftuning/progtuneg/kunpengprogramming_05_0011.html
sourcePath: /source/zh/perftuning/progtuneg/kunpengprogramming_05_0011.html
indexId: 3197d508742cf5df9f86bd4a46e07abaff7150a92d7f92dab2aaa18f567e2d9163
---
# 总结

我们在编写代码时，除了要考虑汇编指令本身的优化，还需要考虑流水线的编排对性能的影响，在做流水线编排时，要尽量减少互锁的发生。CPU可以在大部分情况下工作良好，并且编译器已经为乱序处理器优化了近20年。当指令和数据按照顺序执行时，CPU可以获得最好的性能。

因此，首先，使用简单的代码。简单直接的代码会帮助编译器的优化引擎识别并优化代码，尽量不使用跳转指令，当你不得不跳转时，尽量每次跳转到同样的方向。复杂的设计，例如动态跳转表，虽然看起来很酷并且的确可以完成非常强大的功能，但不管是处理器还是编译器，都无法进行很好的预测处理，因此复杂的代码很可能导致流水线停顿和猜测错误，从而极大地损害处理器性能。

其次，使用简单的数据结构。保持数据有序、相邻和连续可以阻止数据停顿。使用正确的数据结构和数据分布可以获得很大的性能提升。只要保持代码和数据结构尽量简单，剩下的工作就可以放心地交给编译器的优化引擎来完成。
