fs.Length
を使用しています。fs
はFileStream
です。ファイルの長さを読み取る最速の方法C#
これはO(1)
操作ですか?シークの位置が終わりに達したときにファイルを調べるのではなく、ファイルのプロパティから読み込むと思うでしょう。私が見つけようとしているファイルは、1 MBから4〜5 GBの範囲で簡単です。
しかし、FileInfo
クラスがあり、それにはLength
というプロパティがあります。
これらの両方のプロパティは、理論的には同じ時間がかかりますか?または、最初にFileStream
を開く必要があるため、fs.Length
が遅くなりますか?
タイミングの情報をありがとう! – jpints14
そのようなベンチマーキングは、差異がある場合にはそれをテストする最も効果的な方法ではないかもしれません。私はディスクキャッシュ/ OSの要因が時間を維持するためにかなりの役割を果たすと思う。 – PaulG
@PaulGあなたはそうです。ベンチマーキングは常に見た目より**複雑です**。 **上記**の単純なベンチマークは、実際の結果に関するいくつかの兆候を示しています。 100000対250と返されないので、どちらのメソッドも(計算時間に関して)あまりにも多すぎるとは限りません。 – ken2k