1

関連:.GetProperties()のBig-O

.GetProperties()メソッドはC#で何ナノ秒かかりますか?

編集

テスト済み:

単純な開発用コンピューター(特別なものはありません)では、アイテムには8つのプロパティがあり、継承はありません。

        stopwatch.Start();
        for (int i = 0; i < 10000; i++)
        {
            PropertyInfo[] properties = item.GetType().GetProperties();
        }
        stopwatch.Stop();

結果:

  • ナノ秒単位の合計時間:16,569.8
  • ミリ秒単位の合計時間:16.5698
  • .GetProperties()呼び出しあたりの平均時間:1.65 ns(これは仮定であり、結果がキャッシュされているかどうかはわかりません)

    さらに

    追加のネストされたforeachループを使用して2回実行した場合、これには合計6ミリ秒しかかかりませんでした。追加されたコードは次のとおりです(forループ内):

                foreach (var prop in properties)
                {
                    var x = prop;
                }
    
  • 4

    1 に答える 1

    3

    完全なアプリケーション コード、ハードウェアの完全な説明、レジストリまたはシステム構成、オペレーティング システムのバージョン、および実行中のすべてのソフトウェアとそのアクティビティのリストがあれば、妥当な推測を行うことができるはずです。

    私が言おうとしているのは、それは依存しているということです。ほとんどすべてに。見つける唯一の方法は、できればStopwatch何度も繰り返して、時間を計ることです。正確な結果は時々変化し、主に調べているクラス、利用可能な CPU パワーの量、および運 (別名プロセッサ スケジューリング) に依存します。

    于 2012-03-26T20:19:40.220 に答える