Сравниние производительности простых арифметических операций в 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";
Другие петли аналогичны. Если вы посмотрите внимательно на картинку, вы увидите, что деление действительно является самым медленным из четырех операций. Умножение, сложение и вычитание имеют примерно такую же производительность.
