代码性能受分支影响,如何优化分支以提升效率?
- 内容介绍
- 文章标签
- 相关推荐
本文共计13125个文字,预计阅读时间需要53分钟。
译者注:原文《How branches influence the performance of your code and what you can do about it?》是关于底层优化的第三篇文章,前两篇分别是:《缓存友好的程序设计指南》和《函数代价值与优化》。我们已深入探讨了与数相关的优化。
译者注:原文<How branches influence the performance of your code and what can you do about it?>
这是关于底层优化的第三篇文章,前面两篇为:
- 缓存友好程序设计指南
- 函数代价与优化
我们已经涵盖了与数据缓存和函数调用优化有关的前两个主题,接下来将讨论有关于分支相关的内容。所以分支有什么特别的嘛?
分支(亦或跳转)是最常用的指令类型之一。在统计学上,每 5 条指令就会存在一个分支相关的指令。 分支可以有条件地或无条件地改变程序的执行流程。对于 CPU来说, 高效的分支实现对于良好的性能至关重要。
在我们解释分支如何影响 CPU 性能之前,先简单介绍一下 CPU 的内部组织形式。
CPU内部的组织形式今天的许多现代处理器(但不是全部,特别是用于嵌入式系统的一些处理器)具有以下一些或全部特征:
- 指令流水( Pipline ):管道允许CPU同时执行一条以上的指令。能实现这一效果的原因是因为 CPU 将每条指令的执行分成几个阶段,每条指令处于不同的执行阶段。
本文共计13125个文字,预计阅读时间需要53分钟。
译者注:原文《How branches influence the performance of your code and what you can do about it?》是关于底层优化的第三篇文章,前两篇分别是:《缓存友好的程序设计指南》和《函数代价值与优化》。我们已深入探讨了与数相关的优化。
译者注:原文<How branches influence the performance of your code and what can you do about it?>
这是关于底层优化的第三篇文章,前面两篇为:
- 缓存友好程序设计指南
- 函数代价与优化
我们已经涵盖了与数据缓存和函数调用优化有关的前两个主题,接下来将讨论有关于分支相关的内容。所以分支有什么特别的嘛?
分支(亦或跳转)是最常用的指令类型之一。在统计学上,每 5 条指令就会存在一个分支相关的指令。 分支可以有条件地或无条件地改变程序的执行流程。对于 CPU来说, 高效的分支实现对于良好的性能至关重要。
在我们解释分支如何影响 CPU 性能之前,先简单介绍一下 CPU 的内部组织形式。
CPU内部的组织形式今天的许多现代处理器(但不是全部,特别是用于嵌入式系统的一些处理器)具有以下一些或全部特征:
- 指令流水( Pipline ):管道允许CPU同时执行一条以上的指令。能实现这一效果的原因是因为 CPU 将每条指令的执行分成几个阶段,每条指令处于不同的执行阶段。

