为什么使用rawData比直接文件访问慢

时间:2011-10-12 13:47:38

标签: c#

我忘记了.pfx x509证书的密码,所以我决定尝试强制它。所以我去测试并编写了以下代码:

        for (var i = 0; i < 1000; i++)
        {
            try
            {
                var cert = new X509Certificate2("D:/file.pfx", i.ToString(), X509KeyStorageFlags.MachineKeySet);
                Console.WriteLine("Found it: " + i);
            }catch
            {

            }
        }

我知道它远非最佳,但这不是我的问题所在。它有点慢,所以我想,我可以使用rawData重载而不是给它路径名。所以我做了以下代码:

        for (var i = 0; i < 1000; i++)
        {
            try
            {
                cert = new X509Certificate2(buffer, i.ToString(), X509KeyStorageFlags.MachineKeySet);
                Console.WriteLine("Found it: " + i);
            }catch
            {}
        }

bufferbyte[]的位置;在循环之外,我只是使用BinaryReader从文件中加载原始数据。

只有这个代码慢了3倍。那是为什么?

编辑:我现在已经运行了100次这样的代码,所以这不仅仅是一个随机的巧合。

1 个答案:

答案 0 :(得分:0)

也许磁盘缓存是不受管理的,因此更快?