gpt4 book ai didi

c# - FileStream 在应用程序冷启动时非常慢

转载 作者:可可西里 更新时间:2023-11-01 12:41:58 25 4
gpt4 key购买 nike

也有人问过一个非常相似的问题here on SO如果您有兴趣,但正如我们将看到的那样,该问题的公认答案并非总是如此(而且我的应用程序使用模式从来都不是这种情况)。

性能决定代码由 FileStream 构造函数(用于打开文件)和 SHA1 哈希(.Net 框架实现)组成。该代码几乎是我在上面链接到的问题中所问内容的 C# 版本。

情况 1: 应用程序是第一次或第 N 次启动,但目标文件集不同。应用程序现在被告知计算以前从未访问过的文件的哈希值。

  • ~50ms
  • 80% FileStream 构造函数
  • 18% 的哈希计算

案例 2:应用程序现在完全终止,并重新启动,要求计算相同文件的哈希值:

  • ~8ms
  • 90% 的哈希计算
  • 8% FileStream 构造函数

问题
我的应用程序一直在使用 Case 1。永远不会要求它重新计算已经访问过一次的文件的哈希值。

所以我的速率决定步骤是 FileStream 构造函数!我可以做些什么来加快这个用例的速度吗?

谢谢。

附言使用 JetBrains 分析器收集统计数据。

最佳答案

... but with different target file set.

关键词,您的应用将无法利用文件系统缓存。就像它在第二次测量中所做的那样。目录信息不能来自 RAM,因为它还没有被读取,操作系统总是必须回退到磁盘驱动器,这很慢。

只有更好的硬件才能加快速度。 50 毫秒大约是主轴驱动器所需的标准时间量,20 毫秒大约是此类驱动器所能达到的最短时间。读取器磁头寻道时间是硬机械限制。这在今天很容易被击败,SSD 广泛可用且价格合理。唯一的问题是,当你习惯了它,你就再也不会退缩了:)

关于c# - FileStream 在应用程序冷启动时非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1663525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com