如果您有兴趣,这里也提出了一个非常类似的问题,但是我们将看到该问题的公认答案并非总是如此(而且我的应用程序使用模式也并非如此)。
性能确定代码由 FileStream 构造函数(用于打开文件)和 SHA1 哈希(.Net 框架实现)组成。该代码几乎是我在上面链接到的问题中提出的 C# 版本。
情况1:应用程序第一次或第N次启动,但目标文件集不同。现在告诉应用程序计算以前从未访问过的文件的哈希值。
- ~50ms
- 80% FileStream 构造函数
- 18% 哈希计算
案例 2:应用程序现在完全终止,并重新启动,要求计算相同文件的哈希:
- ~8ms
- 90% 哈希计算
- 8% FileStream 构造函数
问题
我的应用程序始终在用例 1中。永远不会要求它重新计算已经访问过一次的文件的哈希值。
所以我决定速率的步骤是 FileStream Constructor!我能做些什么来加快这个用例的速度吗?
谢谢你。
PS Stats 是使用 JetBrains 分析器收集的。