Сколько наносекунд занимает вызов GetProperties ()? - PullRequest
1 голос
/ 27 марта 2012

Относительно: Big-O of .GetProperties ()

Сколько наносекунд занимает метод .GetProperties() в C #?

EDIT

Протестировано:

На простом компьютере разработчика (ничего особенного) элемент имеет 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 нс (это предположение, не уверен, что результаты кэшируются)

Более того

При повторном запуске с дополнительным вложенным циклом foreach это заняло всего 6 миллисекунд. Вот добавленный код (внутри цикла for):

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

1 Ответ

3 голосов
/ 27 марта 2012

Учитывая ваш полный код приложения, полное описание вашего аппаратного обеспечения, ваш реестр или конфигурацию системы, версию вашей операционной системы, а также список всего запущенного программного обеспечения и его действий, у вас должна быть возможность сделать разумное предположение.

Я пытаюсь сказать, что это зависит . Почти на всем. Единственный способ выяснить это - рассчитать время, предпочтительно с Stopwatch и по многим итерациям. Точный результат меняется время от времени и в основном зависит от класса, который вы изучаете, количества доступной мощности ЦП и удачи (иначе как планирование процессора).

...