Забавные результаты производительности, сравнивающие float и double в C # .net 4.0 - PullRequest
0 голосов
/ 18 октября 2010

Я сделал небольшую тестовую программу, которая умножает и добавляет 10 миллионов чисел. С поплавком это всегда занимает 51мс. При использовании double это занимает от 210 до 3310 мс между компиляциями (3310 мс происходит только через каждые 10 компиляций или около того). Что здесь происходит?

private void button1_Click(object sender, RoutedEventArgs e)
        {
            DateTime now = DateTime.Now;
            testCalc(1f,2f,3f);
            System.Diagnostics.Debug.Print((DateTime.Now-now).TotalMilliseconds.ToString());
            now = DateTime.Now;
            testCalcDouble(1, 2, 3);
            System.Diagnostics.Debug.Print((DateTime.Now - now).TotalMilliseconds.ToString());

        }

        private void testCalc(float a, float b, float c)
        {
            for (int i = 0; i < 10000000; i++)
            {
                a++;
                c--;
                float d = (a + b) * c;
            }
        }

        private void testCalcDouble(double a, double b, double c)
        {
            for (int i = 0; i < 10000000; i++)
            {
                a++;
                c--;
                double d = (a + b) * c;
            }
        }

1 Ответ

0 голосов
/ 21 октября 2010

Вопрос закрыт: это происходит только во время работы в отладчике

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...