|
|
1
3
关键短语,您的应用程序将无法利用文件系统缓存。就像第二次测量一样。目录信息不能来自RAM,因为它还没有被读取,操作系统总是必须回落到磁盘驱动器,这是缓慢的。 只有更好的硬件才能加快速度。50毫秒是主轴驱动所需的标准时间量,20毫秒大约是这样的驱动器可以去。读头寻道时间是硬机械极限。这很容易击败今天,固态硬盘是广泛可用和合理的负担得起。唯一的问题是,当你习惯了它,你就再也不会后退:) |
|
|
2
1
文件系统和/或磁盘控制器将缓存最近访问的文件/扇区。
速率决定步骤是读取文件,而不是构造
|
|
3
1
偏离轨道的建议,但这是我做了很多工作,我们的分析速度加快了30%-70%:
再写一段代码:
现在,不要打电话给
此外,如果这些文件是每次在应用程序启动之前新创建的日志等文件,请在文件创建者中添加代码,以便用新创建文件的哈希值更新索引文件。 这样,您的应用程序只能读取索引文件中的哈希值。 我同意@hanspassant关于使用ssd使磁盘读取更快的建议。这个答案和他的答案是恭维的。可以实现两者最大化性能。 |
|
|
4
1
如前所述,文件系统有自己的缓存机制,这会干扰您的测量。
然而,
感觉有点奇怪,这两个测量值是如此不同。目前,我们的机器上也有类似的配置了实时保护的防病毒软件。在这种情况下,防病毒软件处于中间,缓存在第一次被命中或错过时,这取决于此类软件的实现。
由于已知的解码漏洞,防病毒软件可能决定积极检查某些图像文件,如PNG。这种检查会带来额外的减速,并在最外层的.net类中计算时间,即
使用本机符号和/或内核调试进行分析,应该会给您更多的洞察力。 根据我的经验,你所描述的无法减轻,因为我们无法控制多个隐藏层。根据您的使用情况(我现在还不完全清楚),您可以在服务中打开应用程序,因此您可以更快地处理所有后续请求。另外,您可以将多个请求批处理到一个调用中,以实现分摊的降低成本。 |
|
|
5
-1
你应该试着用本地的
|
|
|
A B · C#Excel自动调整列避免长文本时出错 8 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 8 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 8 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 9 月前 |