Сравнение скорости арифметических операций в C#

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

В этом примере используется другой подход, поэтому разумные измерения требуют разумного промежутка времени. Он позволяет ввести время, а затем проверяет операции на этот промежуток времени для каждого из типов данных.
Следующий код показывает, как программа проверяет тип данных decimal.

Перед началом тестов программа считывает количество введенных секунд. Чтобы проверить тип данных decimal, он получает текущее время и добавляет желаемую длину теста к этому, чтобы получить требуемое время остановки.

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

Код для других типов данных аналогичен.

Если вы посмотрите на результаты, вы увидите, что decimal намного медленнее, чем остальные, что занимает почти в три раза больше. Другие операторы имеют сопоставимую производительность.

Источник: http://csharphelper.com/blog/2016/07/compare-speeds-arithmetic-operations-c/

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

Add a Comment

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