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