缓存未命中惩罚:一次可以从 RAM 加载多少数据?
我正在使用大地图(golang)和字典(python),只是想知道RAM一次可以写入/读取多少数据?
因此,例如,当我迭代 10GB 字典时,每个缓存未命中是否会导致仅从 RAM 获取 DWORD(或者典型的 RAM 访问有多宽?),或者 x86/内核会将一批相关数据加载到 L3 (或者将一组加载指令排队到内存控制器)?
在这两种情况下,处理大数据结构不会因为 RAM 访问延迟而成为瓶颈吗? (+内存控制器必须处理的所有刷新周期)
I'm working with big maps (golang) and dicts (python) and just wondering how much data a RAM write/read can be done at once?
So for example when I'm iterating through a 10GB dict, would each cache miss result in just fetching a DWORD(or how wide is the typical RAM access?) from RAM or will x86/kernel load a batch of related data to L3 (or queueing a set of load instructions to memory controller)?
In both cases, wouldn't processing big data structures be bottlenecked by RAM access latency? (+all the refresh cycles the memory controller has to deal with)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论