是否可以通过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\");
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...