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

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

Когда вы нажимаете кнопку Go, программа выполняет циклы, которые проверяют каждую из операций. Следующий код показывает, как программа проверяет производительность умножения.

Stopwatch watch = new Stopwatch();
int num_trials = int.Parse(txtNumTrials.Text);
float x = 13, y, z;

y = 1 / 7f;
watch.Start();
for (int i = 0; i < num_trials; i++)
{
    z = x * y;
}
watch.Stop();
txtTimeMult.Text = watch.Elapsed.TotalSeconds.ToString("0.00") +
    " secs";

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

Источник: http://csharphelper.com/blog/2017/05/compare-the-performance-of-simple-arithmetic-operations-in-c/

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