如何修改 CPU Cache L1、Cache L2 和 Cache L3?

4 .net c# windows cpu caching

我可以使用命名空间 System.Runtime.Caching 来修改 CPU 缓存 L1、L2 和 L3 的属性和值吗?

msdn.microsoft.com 告诉我命名空间允许在 Windows 中创建新的缓存存储,如虚拟 RAM。

但是,我想使用 CPU 包含的缓存进行编程。你能告诉我怎么做吗?

感谢您的解决方案!

Fur*_*may 5

System.Runtime.Caching 提供对高级缓存设施的访问,通常在具有键值对的常规 RAM 上。(除此之外还有更多用例。)就像你提到的,MSDN说:

您可以创建自定义缓存提供程序。例如,您可以创建将缓存数据存储在数据库、自定义对象或文件系统中的自定义提供程序,而不是使用默认的内存中缓存引擎。

但是 CPU 缓存是一种低级内存,它会自动与 CPU 本身一起使用,以减少访问 RAM 的次数;所以它实际上并不意味着被外部应用程序修改。

例如,L1指令缓存在物理上靠近处理核心,它存储机器代码指令,而 .NET 应用程序在由 .NET Framework 本身(或 ngen)运行之前甚至不会存储为机器代码,这使得低级操作甚至更难。

CPU缓存

但这并不意味着它们不会受到您的代码的影响。您可以编写高效的代码,让 CPU 以优雅的方式使用其缓存。有关更多信息,请参阅:如何编写最能利用 CPU 缓存来提高性能的代码?