繁体   English   中英

使用TLS的缓存未命中次数更少?

[英]Fewer cache misses with TLS?

如果在多线程程序中使用“线程本地存储”,是否会减少较少的缓存丢失?

编辑:由于每个线程被赋予其自己的内存池,最后访问的内存是否更有可能仍在CPU缓存中?

缓存未命中次数少于什么

TLS只是确保不同线程对不同数据进行操作的多种方法之一(显而易见的方法是将每个线程的数据放在其自己的堆栈中)。

如果您的线程不写入相同的数据(因为这将使所有其他内核的相应缓存行无效),您将获得更好的缓存行为,但是用于确保线程在不同数据上运行的方法无关紧要。这个方面。

(但是,TLS还有其他开销。这不是魔术,也不是灵丹妙药。在大多数情况下,这是错误的解决方案)

不可以,因为缓存实际上不是根据线程池大小来组织的,因此它们独立于您所考虑的选择而工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM