---
title: 修改CPU的预取开关
description: "局部性原理分为时间局部性原理和空间局部性原理："
url: https://www.hikunpeng.com/document/detail/zh/perftuning/tuningtip/kunpengtuning_12_0011.html
sourcePath: /source/zh/perftuning/tuningtip/kunpengtuning_12_0011.html
indexId: 2621a1d5a5288ab14ede472ef9f37ac81eb4e4a30d3ef90737db2dad58919ce958
---
# 修改CPU的预取开关

#### 原理

局部性原理分为时间局部性原理和空间局部性原理：

- 时间局部性原理（temporal locality）：如果某个数据项被访问，那么在不久的将来它可能再次被访问。
- 空间局部性原理（spatial locality）：如果某个数据项被访问，那么与其地址相邻的数据项可能很快也会被访问。

CPU将内存中的数据读到CPU的高速缓存时，会根据局部性原理，除了读取本次要访问的数据，还会预取本次数据的周边数据到Cache中，如果预取的数据是下次要访问的数据，那么性能会提升，如果预取的数据不是下次要访问的数据，那么会浪费内存带宽。

对于数据比较集中的场景，预取的命中率高，适合打开CPU预取，反之对于数据不集中的场景则需要关闭CPU预取。目前发现SPEC CPU和X265软件场景适合打开CPU预取，STREAM测试工具、Nginx和数据库场景需要关闭CPU预取。


#### 修改方式

按照进入BIOS界面的步骤进入BIOS，然后在BIOS的如下位置设置CPU的预取开关。
