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

时间:2014-09-05 11:34:27

标签: c# .net windows caching cpu

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

msdn.microsoft.com告诉我,命名空间允许在窗口中创建新的缓存存储,就像虚拟RAM一样。

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

感谢您的解决方案!

1 个答案:

答案 0 :(得分:4)

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

  

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

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

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

CPU cache

并不意味着他们不会受到您的代码的影响。您可以编写有效的代码,使CPU以优雅的方式使用其缓存。有关详细信息,请参阅:How does one write code that best utilizes the CPU cache to improve performance?