Сравнение производительности цикла с переменными DateTime и integer в C#

Пример Найдите пятницу тринадцатые в C# , t действительно беспокоиться о производительности. Он использует целые числа для округления дат в пределах диапазона. За каждый год между датой начала и окончания код учитывает 13-е число каждого месяца в этом году. Затем он игнорирует любые месяцы до даты начала и заканчивает цикл, если он находит дату после даты окончания. Это короткий цикл, поэтому производительность не имеет большого значения.

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

Следующий код показывает, как этот пример сравнивает производительность двух типов циклов в диапазоне дат.

Код создает некоторые переменные для записи начала и истекшего времени, а затем получает некоторую информацию о выбранных датах начала и окончания. Затем он использует целые числа для представления лет и месяцев в диапазоне дат и игнорирует любые даты, которые выходят за пределы диапазона. Дополнительную информацию о том, как работает этот цикл, см. В предыдущем примере .

Далее код вычисляет первый 13-й месяц, который больше или равен начальной дате и последнему 13-му месяцу до или равна конечной дате. Затем он использует переменную DateTime для циклирования по датам между началом 13-го и 13-м. После каждой итерации секция итерации цикла использует метод AddMonth переменной DateTime для добавления 1 месяца к переменной, заставляя ее перемещаться до 13 числа следующего месяца.

Источник: http://csharphelper.com/blog/2017/08/compare-performance-looping-over-datetime-and-integer-variables-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *