Сколько времени мой код берет для выполнения?

Я не выполнил в XCode немного, но я рекомендую отключить "Zerolink" и "Символы Загрузки Лениво"; это решит большинство проблем. Zerolink является отвращением так или иначе.

9
задан Tim Booker 16 August 2009 в 19:04
поделиться

6 ответов

Ознакомьтесь с классом Секундомер :

Stopwatch sw = new Stopwatch();
sw.Start();

// your code here

sw.Stop();
TimeSpan elapsedTime = sw.Elapsed;
14
ответ дан 4 December 2019 в 06:30
поделиться

Класс Секундомер обеспечивает высокоточное время в .NET. Он способен измерять время с чувствительностью около 100 наносекунд (доли миллисекунд). Чтобы получить точное разрешение, прочтите значение Stopwatch.Frequency .

var timer = System.Diagnostics.Stopwatch.StartNew();
// Run code here.
var elapsed = timer.ElapsedMilliseconds.

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

14
ответ дан 4 December 2019 в 06:30
поделиться

Ознакомьтесь с классом Секундомер .

1
ответ дан 4 December 2019 в 06:30
поделиться

Как уже говорили другие, класс Секундомер хорош для простой стороны времени. Однако следует иметь в виду и другие моменты:

  • Ваш код может генерировать объекты, которые необходимо будет удалить после остановки секундомера.
  • И наоборот, ваше время может включать в себя других объектов, которые даже собираются сборщиком мусора. если они не имеют ничего общего с вашим кодом
  • Если вы начнете отсчет времени до того, как запустите свой метод в первый раз, он будет включать время JIT
  • Если вы потратите очень короткое время, это приводит к очень непредсказуемым результатам - для тестирования я предпочитаю запускать код в течение многих секунд, чтобы учесть прерывание работы приложения другими процессами и т. д.

Если вас интересует тестирование производительности, у меня есть MiniBench , над которым я должен снова вернуться в какой-то момент - это не совсем то, чем я хочу, чтобы он закончился, но это начало. Подробнее о том, чего я хочу достичь, я расскажу в этой записи блога .

8
ответ дан 4 December 2019 в 06:30
поделиться

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

0
ответ дан 4 December 2019 в 06:30
поделиться

Если вы хотите простого, просто поместите вокруг него цикл из N итераций, используйте секундомер (или просто наручные часы) и разделите на N. Например, если вам нужны микросекунды, пусть N = 1000000 .Если вас беспокоят накладные расходы на цикл, просто разверните его в 10 раз.

0
ответ дан 4 December 2019 в 06:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: