AIRobot

AIRobot quick note


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

缓存优化技巧

发表于 2022-09-16
本文字数: 462 阅读时长 ≈ 1 分钟

为什么要用数据缓存

现代电子计算机系统通常包含处理器和内存。内存通常慢于处理器百倍,因此处理器通常要等待内存的数据传输。
缓存就是为了协调不同速度的问题诞生的。缓存通常可以以很快的速度访问,但是容量通常显著小于被缓存对象。

为什么缓存能够提高速度

缓存命中时,可以直接以缓存访问速度取到数据。
缓存未命中时,处理器会去内存中访问,这种情况不仅没有加速,还浪费了时钟周期。

那么缓存为什么最终能加速?
因为局部性原理:1.时间局部性2.空间局部性.
因为局部性原理的存在可以显著提高缓存命中率,所以缓存能够加速.

时间局部性:如果处理器目前正在访问某个内存地址,就很有可能在不久的将来再次访问这个内存地址

空间局部性:如果处理器目前正在访问某个内存地址,那么它很有可能会在不久的将来访问邻近的内存地址

提高性能的技巧

尽量使用连续空间

频繁访问的变量内存中尽量相邻

使用数据数组代替指针数组

优化对类或结构体数组的访问

有效地访问矩阵中的数据

类或结构体中避免填充

尽量使用小的类型

尽量避免堆分配

尽量用缓存中的数据

避免写内存

适当对齐数据

使用预取

实验

总结

# C
内核新功能特性
交换机
  • 文章目录
  • 站点概览
AIRobot

AIRobot

AIRobot quick note
130 日志
15 分类
23 标签
GitHub E-Mail
Creative Commons
  1. 1. 为什么要用数据缓存
    1. 1.1. 为什么缓存能够提高速度
  2. 2. 提高性能的技巧
    1. 2.1. 尽量使用连续空间
    2. 2.2. 频繁访问的变量内存中尽量相邻
    3. 2.3. 使用数据数组代替指针数组
    4. 2.4. 优化对类或结构体数组的访问
    5. 2.5. 有效地访问矩阵中的数据
    6. 2.6. 类或结构体中避免填充
    7. 2.7. 尽量使用小的类型
    8. 2.8. 尽量避免堆分配
    9. 2.9. 尽量用缓存中的数据
    10. 2.10. 避免写内存
    11. 2.11. 适当对齐数据
    12. 2.12. 使用预取
  3. 3. 实验
  4. 4. 总结
0%
© 2023 AIRobot | 716k | 10:51