参考链接:

高速缓存

  • 在内存与cpu寄存器之间,还有一块区域叫做cpu高速缓存,即我们常常说的cache。
  • cache分为L1、L2、L3三级缓存,速度递减,离cpu越来越远
  • L1、L2每个内核自己都有,L3是每个插槽上的多个内核共用一个。
  • cpu按照值使用频道来从1、2、3缓存逐个进行检索,L1如果没有命中,就向下继续检索L2、L3直到内存。

访问时间

  • 在上述缓存的存取与检索读取的操作中,最基本的单位(即内核操作缓存的最基本单位)成为缓存行(cache line),一般情况下,cache line的大小为64字节。
  • 举个例子,对于顺序存储的一个数组而言,当我们从内存中读取一个数组元素进缓存的时候,要一次读取64字节,那么这样就会将我们需要读取的元素后面的若干个8字节long也一并都进了缓存,并且这是在一个操作里完成的,没有额外的花费。大大提高了性能。
  • 测试运行时间可以发现:先对行遍历只用不到1秒,而先对列遍历的话要用12秒
    行优先快,列优先慢

END

最新文章

  1. Windows Azure Storage (22) Azure Storage如何支持多级目录
  2. JMeter 聚合报告之 90% Line 参数说明
  3. ThinkPHP3.1.3源码分析---php文件压缩zlib.output_compression 和 ob_gzhandler
  4. JavaScript学习笔记——BOM_window子对象_History、Location、Screnn对象
  5. 剑指Offer 调整数组顺序使奇数位于偶数前面
  6. ArrayList排序
  7. JS弹出遮罩层
  8. 全排列算法(字典序法、SJT Algorithm 、Heap's Algorithm)
  9. ios7新增基础类库以及OC新特性
  10. 浅谈js观察者模式
  11. C# 实现预览dwg文件完整源代码(无需autocad环境)
  12. 2016 Multi-University Training Contest 2 总结
  13. QT小技巧—更好管理项目(增加预编译头文件,并且指定moc文件的生成位置)good
  14. 如何让格斗游戏的横版过关(2) Cocos2d-x 2.0.4
  15. javascript 表达式和运算符 (二)
  16. 初识Spider_Man(爬爬虫)
  17. Word中去除/删除/删掉Equation Chapter (Next) Section 1
  18. new 和 newInstance 的区别
  19. Akka-Cluster(4)- DistributedData, 分布式数据类型
  20. springboot-multisource

热门文章

  1. 初学Java 数组统计字母
  2. AMBS
  3. tac 反向显示文件内容
  4. 【学习】011 JVM参数调优配置
  5. php函数漏洞
  6. 前端自动化gulp使用方法
  7. python封装成exe
  8. tensorboard可视化(先写一点点)
  9. win10下配置多个mysql数据库
  10. git 常用命令记录