quandry は - 次の 2 つの方法のどちらが最も優れたパフォーマンスを発揮する
か
です
。レコード数 - 約 1000 ~ 約 2000、最大約 6K
選択肢 - オンザフライでオブジェクトを作成するか、辞書からルックアップを
実行 実行速度 - 毎秒 x 回呼び出される
注意 - 最初に動作するコードを提供してから最適化を行う必要があるため、理論家が舞台裏の情報を垣間見ることができれば、おそらく eod thu までに実際のパフォーマンス テストに進む前に役立つでしょう。
定義 -
class Wrapper
{
public readonly DataRow Row;
public Wrapper(DataRow dr)
{
Row = dr;
}
public string ID { get { return Row["id"].ToString(); } }
public string ID2 { get { return Row["id2"].ToString(); } }
public string ID3 { get { return Row["id3"].ToString(); } }
public double Dbl1 { get { return (double)Row["dbl1"]; } }
// ... total about 12 such fields !
}
Dictionary<string,Wrapper> dictWrappers;
方法 1
Wrapper o = new Wrapper(dr);
/// some action with o
myMethod( o );
方法 2
Wrapper o;
if ( ! dictWrappers.TryGetValue( dr["id"].ToString(), out o ) )
{
o = new Wrapper(dr);
dictWrapper.Add(o.ID, o);
}
/// some action with o
myMethod( o );