如何编写对缓存友好的程序代码?
- 内容介绍
- 文章标签
- 相关推荐
本文共计10093个文字,预计阅读时间需要41分钟。
通过优化数据缓存加速程序运行+译者注:提高程序运行速度的方法之一是更有效地使用数据缓存。原文链接:Make your programs run faster by better using the data cache。原文作者同意此翻译。本文中的一些策略仅对大量数据处理有优化效果,大量数据非常显著。
通过使用数据缓存加速程序通过使用数据缓存加速程序译者注:本文原始链接为<Make your programs run faster by better using the data cache>,翻译获得作者同意。本文中的一些策略只对大量数据处理有优化的可能,小量数据很可能带来性能下降。
开发者时刻面临着如何加速程序,其中最明显的是通过花哨的算法来降低复杂度。比如说将\(O(n^2)\) 复杂度的算法,使用 \(O(nlogn)\) 替换等等。这是很好的方法,但是并不是所有的程序都有更好的算法来优化。那么应该怎么办?是否存在一种方法来优化我们已存在的算法。事实上是存在的,它叫:底层优化(low-level optimizations)。
首先,先来了解一下底层优化的情况。底层优化关注于如何最好地利用底层架构的特殊性来获得更好的性能。这是这个系列的第一篇,将会涉及到底层优化。我们将在如何更好地利用内存缓存子系统上探索一系列的方法。对于熟悉现代多进程系统内存缓存原理的读者,可以调过 数据缓存 章节。
数据缓存计算机系统通常包含处理器和内存。在现代计算机系是中内存是比处理器慢百倍的,因此处理器通常都要等待内存传输数据。聪明的硬件工程师想出了一个解决方案来抵消速度上差异:他们添加了一个很小的快速内存被称为缓存的东西,用以弥补不同的速度。
本文共计10093个文字,预计阅读时间需要41分钟。
通过优化数据缓存加速程序运行+译者注:提高程序运行速度的方法之一是更有效地使用数据缓存。原文链接:Make your programs run faster by better using the data cache。原文作者同意此翻译。本文中的一些策略仅对大量数据处理有优化效果,大量数据非常显著。
通过使用数据缓存加速程序通过使用数据缓存加速程序译者注:本文原始链接为<Make your programs run faster by better using the data cache>,翻译获得作者同意。本文中的一些策略只对大量数据处理有优化的可能,小量数据很可能带来性能下降。
开发者时刻面临着如何加速程序,其中最明显的是通过花哨的算法来降低复杂度。比如说将\(O(n^2)\) 复杂度的算法,使用 \(O(nlogn)\) 替换等等。这是很好的方法,但是并不是所有的程序都有更好的算法来优化。那么应该怎么办?是否存在一种方法来优化我们已存在的算法。事实上是存在的,它叫:底层优化(low-level optimizations)。
首先,先来了解一下底层优化的情况。底层优化关注于如何最好地利用底层架构的特殊性来获得更好的性能。这是这个系列的第一篇,将会涉及到底层优化。我们将在如何更好地利用内存缓存子系统上探索一系列的方法。对于熟悉现代多进程系统内存缓存原理的读者,可以调过 数据缓存 章节。
数据缓存计算机系统通常包含处理器和内存。在现代计算机系是中内存是比处理器慢百倍的,因此处理器通常都要等待内存传输数据。聪明的硬件工程师想出了一个解决方案来抵消速度上差异:他们添加了一个很小的快速内存被称为缓存的东西,用以弥补不同的速度。

