0

パフォーマンスが重要なコードを書いています。その一部では、事前に計算された大量のデータを動的な値と比較する必要があります。現在、事前に計算されたデータを.csファイルの巨大な配列に保存しています。

Data[] data = { /* my data  set */ };

データセットは約90kb、つまり約13k要素です。外部ファイルからロードするのではなく、これを行うことにはマイナス面があるのではないかと思っていました。C#が内部でどのように機能するか完全にはわからないため、このメソッドで発生する可能性のあるパフォーマンスの問題に注意したかっただけです。

4

2 に答える 2

5

正直言って、90kbはそれほど大きくはありません。そのサイズの配列では、どちらの方法でも感知できるほどの違いは見られません。

一般に、巨大な配列がある場合は、ソースファイル内に保存することはお勧めしません。実行時のパフォーマンスには問題がないかもしれませんが、コンパイルが遅くなることがわかりました。

設計の観点からは、データが変更されるかどうかが決定される可能性があります。たとえば、あるタイプのファイルのバイトヘッダーを保存している場合、ソース内に保存するのは変更されないため、合理的である可能性があります。ただし、一部の事前計算されたデータ、特に後日再度生成する可能性がある場合は、おそらく外部ファイルに配置する必要があります。

于 2012-12-07T04:27:07.447 に答える
1

悪い:

  • ハードコードされたデータセットの変更は面倒です

良い:

  • データファイルが存在しない、破損している、ユーザーエラーが原因で間違った形式になっているなどの愚かなことから保護されています。
  • データをロード/解析する必要はありません

補足: パフォーマンスが心配な場合は、リストではなく、必ずアレイを使用してください:アレイとリストのパフォーマンス

于 2012-12-07T04:59:46.917 に答える