如何解决是否可以通过C#访问CPU缓存读和写?
| 我想知道C#中是否有实现的东西,可以访问CPU缓存。这对我来说很有趣,但是目前我与cpu缓存无关。所以我想知道这是系统限制的访问还是对用户也适用。我说的是L1 / L2或它们的名字! 很高兴听到您的评论,外部链接以及一些代码片段!谢谢。解决方法
没有编程语言可以直接访问CPU缓存。读写缓存是由硬件自动完成的。无法编写将缓存视为任何种类的单独实体的指令。读取和写入缓存是所有接触内存的指令的副作用。
, 对于此类活动,C#的级别有点高。除非您要调用其他用C / ASM编写的库=)当然,使用高速缓存通常是一个晦涩难懂的主题,并且在大多数情况下,它完全由硬件控制。另一方面,关于SO的一些非常有趣的问题/讨论可能已经遇到。
C ++缓存感知编程
如何在x86 Windows中刷新CPU缓存?
无论如何,尽管有这些限制,您仍然可以预测(某种程度上)缓存将要做什么,并利用它来处理特殊的应用程序。
,
public static string GetComponent(string hwclass,string syntax)
{
var mos = new ManagementObjectSearcher(\"root\\\\CIMV2\",\"SELECT * FROM \" + hwclass);
foreach (var o in mos.Get())
{
var mj = (ManagementObject)o;
CpuModel = Convert.ToString(mj[syntax]);
}
return CpuModel;
}
private string L2CacheSize = HardwareManagement.GetComponent(\"Win32_Processor\",\"L2CacheSize\");
private string L3CacheSize = HardwareManagement.GetComponent(\"Win32_Processor\",\"L3CacheSize\");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。