当前位置: 首页 > 面试题库 >

访问各种缓存和主内存的大概费用?

孙阳旭
2023-03-14
问题内容

谁能给我大概的时间(以纳秒为单位),以访问L1,L2和L3高速缓存以及Intel i7处理器上的主内存?

虽然这不是专门针对编程的问题,但了解某些速度细节对于某些低延迟编程挑战而言是必需的。


问题答案:

这是针对i7和Xeon系列处理器的性能分析指南。我要强调,这是您需要的,还有更多(例如,请查看第22页上的一些时间和周期)。

此外,此页面 还提供了有关时钟周期等的一些详细信息。第二个链接提供了以下数字:

Core i7 Xeon 5500 Series Data Source Latency (approximate)               [Pg. 22]

local  L1 CACHE hit,                              ~4 cycles (   2.1 -  1.2 ns )
local  L2 CACHE hit,                             ~10 cycles (   5.3 -  3.0 ns )
local  L3 CACHE hit, line unshared               ~40 cycles (  21.4 - 12.0 ns )
local  L3 CACHE hit, shared line in another core ~65 cycles (  34.8 - 19.5 ns )
local  L3 CACHE hit, modified in another core    ~75 cycles (  40.2 - 22.5 ns )

remote L3 CACHE (Ref: Fig.1 [Pg. 5])        ~100-300 cycles ( 160.7 - 30.0 ns )

local  DRAM                                                   ~60 ns
remote DRAM                                                  ~100 ns

EDIT2:
最重要的是引用表下的通知,说:

“注意:这些值是粗略的近似值。它们取决于核心和未知频率,内存速度,BIOS设置,DIMM数量,ETC等。您的里程可能会有所不同。 ”

编辑:我要强调的是,除了时序/周期信息之外,上述intel文档还(从性能的角度)介绍了i7和Xeon系列处理器的更多(极其)有用的细节。



 类似资料:
  • 我们刚刚开始使用AWS,并要求使用AWS ElasticCache和带有Spring的Redis绝地。Spring数据redis 1.8.8。发布aws java sdk 1.11.228 Spring 4.2.9。释放绝地武士2.9.0 我能够连接和缓存数据到本地redis与下面的代码。我尝试过https://github.com/fishercoder1534/AmazonElastiCach

  • 问题内容: 我是所有内存管理主题的新手,所以有很多我不了解的事情。 我正在尝试将图像缓存在我的应用程序中,但是我在内存消耗方面遇到了麻烦: 所有的Bitmap Chaching代码都可以从此处复制粘贴:http : //developer.android.com/training/displaying- bitmaps/index.html 我调试了代码,并在Eclipse的DDMS视图中检查了堆

  • 我是infinispan的新手,通过实验学习。在尝试访问不同名称的远程缓存失败后,我需要一些帮助。下面是我的infinispan客户端-服务器模式未嵌入的场景。 1) 我在infinispan集群中启动了node1,并将默认远程缓存名称设置为node1\u cache--Hotrod服务器已启动 2) 已在infinispan群集中启动node2,并将默认远程缓存名称设置为node2\u cach

  • 本文向大家介绍虚拟内存和缓存内存之间的区别,包括了虚拟内存和缓存内存之间的区别的使用技巧和注意事项,需要的朋友参考一下 在计算机环境中,内存是至关重要的部分,因为它是唯一负责系统性能和系统存储容量的部分。众所周知,内存负责任何应用程序的加载和执行,还用于存储其数据,以后可被其使用,因此在加载或安装应用程序之前了解系统的内存配置非常重要。 现在,在本主题中基本上将要讨论的是两种类型的存储器,即虚拟存

  • 是否有可能在内存中实现缓存以避免完全堆消耗? 我的spring boot java应用程序使用内存缓存,过期策略设置为1小时(咖啡因库用于缓存目的)。在此之后,所有缓存实例都处于旧代,需要收集完整的GC。现在,当XMX设置为10GB时,我可以看到经过几个小时的测试,我的缓存包含大约100k个实例,但在heap中(正好是旧一代),我可以找到数百万个缓存对象的实例。是否有可能在内存中使用缓存并避免这种

  • 我一直在阅读hibernate文档,讨论二级缓存和查询缓存,并留下了关于二级缓存与DB同步的问题,反之亦然。每个会话都可以定义自己的缓存模式,比如正常、获取、放置和刷新。将2L缓存