0

500 GB 以上のテキスト ファイルがあります。重複を検索し、それらを削除し、並べ替えて最終ファイルを保存する必要があります。もちろん、そのような大きなファイルの場合、LINQなどはまったくうまく機能せず、機能しないため、外部ソートを使用する必要があります。「Send-Safe List Manager」というアプリがあります。その速度は超高速で、200MB の txt ファイルの場合、10 秒未満で結果が得られます。「Greatis WinDowse」アプリを使用してexeの内部を調べたところ、Delphiで書かれていることがわかりました。C# で記述された外部並べ替えクラスがいくつかあります。それらを使用して 200MB のファイルをテストしましたが、すべて 1 分以上でした。だから私の質問は、この種の計算ではC#よりもDelphiの方が速いということです。自分で書く必要がある場合は、Delphiを使用する必要がありますか?そしてC#で私はその速度に到達できますか?

4

2 に答える 2

6

Delphi はネイティブ コードを生成し、インライン アセンブリも可能にするため、理論的には、Delphi では特定のアルゴリズムの最大速度に到達しやすくなる可能性があります。

ただし、説明するパフォーマンスは IO パフォーマンスに関連しており、可能なアルゴリズム間のパフォーマンスの違いは、Delphi と .NET の違いよりも数桁大きくなります。

それをスピードアップしようとする場合、言語はおそらく最後に確認する必要があります。

于 2013-03-14T20:05:02.737 に答える
6

大きなファイル用に適切に作成されたソート コードは、ディスクにバインドする必要があります。その時点では、使用する言語に本質的な違いはありません。

于 2013-03-14T19:53:44.030 に答える