Сравнительное исследование производительности циклов for и foreach на платформе .NET (6.0, 7.0) C# |
Автор: Габдуллин Д.Р.,Тазетдинов Б.И. | |||||||||||||||
14.03.2024 09:48 | |||||||||||||||
СРАВНИТЕЛЬНОЕ
ИССЛЕДОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ ЦИКЛОВ FOR И FOREACH НА ПЛАТФОРМЕ .NET (6.0, 7.0) C# Габдуллин
Д.Р.,
студент 2 курса, Бирский филиал УУНиТ,
г. Бирск, Россия Тазетдинов
Б.И.,
к.ф.-м.н., доцент, Бирский филиал УУНиТ,
г. Бирск, Россия Аннотация. В статье проведено сравнительное
исследование производительности работы циклов for и foreach при работе с массивами и коллекциями в
среде .NET.
Построена таблица результатов исследования и сделаны соответствующие выводы. Ключевые
слова:
циклы for
и foreach,
производительность работы циклов. Применение
циклов в программировании широко распространено. В частности циклы используются
при работе с массивами и коллекциями. К примеру, при работе с массивами и
коллекциями на языке программирования C#, чаще всего применяются циклы for и foreach. Поэтому была поставлена задача о
сравнительном исследовании производительности циклов for и foreach по скорости работы. Постановка
задачи заключалась в следующем: изначально были созданы массив и коллекция типа
list
размерностью 150 элементов. Каждый элемент из себя представлял целое число,
сгенерированное случайным образом в диапазоне от 0 до 199. Эксперимент
заключался в следующем: первоначально сформированные массив и список
перебирались с помощью циклов for
и foreach
в различных .NET
платформах версии 6.0 и 7.0 на языке программирования C#. Для каждого случая перебора
проводилось как минимум 10 тестовых запусков, при каждом запуске вычислялось
время работы перебора. Затем вычислялось среднее значение для каждого
отдельного случая. Результат эксперимента представлен в таблице 1 ниже. При
создании тестовых программ, в качестве справочных материалов использовались
литературные источники [1-4]. Таблица
1 Результат
численного сравнительного эксперимента на время работы циклов for и foreach в различных платформах .NET C#
Из
таблицы 1 видно, что время перебора массива для циклов for и foreach на платформах 6.0 и
7.0 несколько быстрее, чем перебор списков. В свою очередь перебор массива циклом
foreach
реализуется быстрее в среднем на 40%, чем цикл for. А при переборе списков цикл for работает быстрее, чем цикл foreach, для платформы .NET 6.0 примерно на 35% быстрее, .NET 7.0 на 12% соответственно. Из
выше сказанного следует, что при работе с массивами и коллекциями, прежде чем
обрабатывать эти данные на различных версиях платформ, предварительно
необходимо исследовать скорость обработки данных по различным критериям в
зависимости от поставленной задачи. И только потом принимать решение о
применении того или иного цикла.
Литература
2. 3.
|
|||||||||||||||
Обновлено 14.03.2024 10:01 |