我可以使用System.Runtime.Caching命名空间来修改CPU缓存L1、L2和L3的属性和值吗? msdn.microsoft.com告诉我这个命名空间允许在Windows中创建新的缓存存储,就像虚拟RAM一样。 但是,我想使用CPU自带的缓存进行编程。你能告诉我如何做到这一点吗? 谢谢提供解决方案!
System.Runtime.Caching提供访问高级缓存设施的功能,通常使用键值对在常规RAM上。(除此之外还有更多用例。)就像您提到的MSDN所说:“您可以创建自定义缓存提供程序。例如,您可以创建自定义提供程序,将缓存数据存储在数据库中、自定义对象中或文件系统中,而不是使用默认的内存缓存引擎。”但CPU缓存是一种低级内存,它与CPU本身一起自动使用,以减少访问RAM的次数;因此,它实际上并不是由外部应用程序修改的。例如,L1指令缓存位于处理核心旁边,它存储机器代码指令,而.NET应用程序甚至在.NET Framework本身(或ngen)运行它们之前都不会被存储为机器代码,这使得低级操作变得更加困难。 但这并不意味着它们不能受到您的代码的影响。您可以编写高效的代码,使CPU以优雅的方式使用其缓存。有关更多信息,请参见:如何编写最佳利用CPU缓存以提高性能的代码?