4つの小数から成る約50万のデータポイントを処理する必要があります。私はこれを行うために構造体の配列を使用したいと思います。これは、配列の配列を使用するよりもはるかに遅いでしょうか?記憶は問題ではないようですが、スピードは速くなるでしょう - 速くする必要があります。二つのオプションの小規模な配列のアクセス時間と小さな構造体のアクセス時間#
クイックサンプルコード:
オプション1:
public struct Struct
{
public decimal A { get; set; }
public decimal B { get; set; }
public decimal C { get; set; }
public decimal D { get; set; }
}
使用:
private Struct[] data;
オプション2:
private decimal [][] data;
また、decimal
正しいデータ型を使用しますか?データポイントはお金です...
ありがとう! ブライアン
構造体で読み書き可能な自動プロパティを使用することをお勧めします。代わりにフィールドを公開することをお勧めします。クラス内の露出したフィールド上に露出した自動プロパティを優先させる理由はさまざまですが、構造に適用できるものはほとんどありません。コードが常にどのフィールドを使うべきかを知っているならば、露出フィールド構造体を使うことをお勧めします。さもなければ、良好な性能のための適切な代替案は、サイズ「N * 4」の「フラット」アレイに「N」個のアイテムを格納することであろう。 .netは1次元配列に最適化されているため、このようなアプローチでは高速なパフォーマンスが得られます。 – supercat