-2

次のようなことを行う場合、パフォーマンスの問題/考慮事項があるかどうかを知る必要があります。

public Hastable Properties=...
public double ItemNumber
{
  get { return (double)Properties["ItemNumber"]; }
  set
{
  ItemNumber = value;
  Properties["ItemNumber"] = value;
}
}

Public string Property2....

Public ... Property 3....

プロパティに直接アクセスする代わりに:

public string ItemNumber { get; set; }
public string prop2 { get; set; }
public string 3...{ get; set; }
4

2 に答える 2

1

それはあなたのパフォーマンス要件に依存します... にアクセスしHashtableて結果をキャストすることは、単にフィールドにアクセスするよりも明らかに遅くなります (自動プロパティは暗黙的にフィールドを作成します)。大きな違い。どちらの場合も複雑ですがO(1)、ハッシュテーブルへのアクセスには明らかにより多くのサイクルがかかります...

于 2013-03-17T17:27:28.580 に答える
0

get 操作と set 操作のために実行する必要があるコードがはるかに多いため、プロパティへの直接アクセスに比べて確実に遅くなります。ただし、Hashtable を使用しているため、アクセスはかなり高速になるはずです。弱く型付けされたコレクションを使用しているため、キャストのために追加のオーバーヘッドも発生しています。ボックス化やボックス化解除などにはコストがかかります。問題は、これらすべてがアプリケーションのパフォーマンスに顕著な影響を与えるかどうかです。それは本当にあなたの要件に依存します。これがボトルネックになる可能性があるかどうかを確認するために、いくつかの負荷テストを実行することをお勧めします。

于 2013-03-17T17:27:09.663 に答える