Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему упала производительность? :( 
V
    Опции темы
Ch0bits
  Дата 26.12.2005, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 9
Всего: 62



У меня стоят две одинаковые системы WinXP Pro SP2. На одной установлена VS2005, а на другой только .NET Framework 2.
С одной из тем форума взял такую программу, кто автор не помню:
Код

using System;

    class CMain
    {
        static void Main()
        {
            Random rnd = new Random();
            double[,] mass = new double[801, 801];
            for (int i = 0; i < 801; i++)
            {
                for (int j = 0; j < 801; j++)
                {
                    mass[i, j] = 1.0 + rnd.NextDouble();
                }
            }
            double dat, dat2;
            Console.WriteLine("Starting.. Press <Enter>");
            Console.Read();
            DateTime dt1 = System.DateTime.Now;
            for (int b = 0; b < 801; b++)
            {
                for (int a = 0; a < 801; a++)
                {
                    for (int c = 1; c < 801; c++)
                    {
                        dat = mass[a, b];
                        dat2 = mass[c, b];
                        if (dat > dat2)
                        {
                            mass[a, b] = dat;
                            mass[c, b] = dat;
                        }
                    }
                }
            }
            DateTime dt2 = System.DateTime.Now;
            Console.WriteLine("Done");
            Console.WriteLine("Time: " + dt2.Subtract(dt1).ToString());
            Console.Read();
            Console.Read();
            return;
        }
    }


Чудеса заключаются в том, что время выполнения на системе:
1я система (VS2005 среда не запущена, профиль Release, выполнено 10 запусков) 12-13 сек
2я система (NET 2, выполнено 10 запусков) 6-7 сек

Комп Athlon 64 3400+ / 1Gb RAM без файла подкачки

Почему такая разница в скорости? И почему такая маленькая скорость?
PM WWW   Вверх
Ch0bits
Дата 26.12.2005, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 9
Всего: 62



Сейчас совсем запутался. При компиляции из консоли с помощью csc получаются такие результаты:
.NET 1.1 время работы 8.3 сек +/- 0.2 сек
.NET 2 время работы 9.5 сек +/- 0.3 сек
PM WWW   Вверх
mr.DUDA
Дата 27.12.2005, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Vadim999 @ 26.12.2005, 17:48)
И почему такая маленькая скорость?

800 * 800 * 800 = 512.000.000
Вот столько итераций у второго цикла (сортирует он, что ли), а в цикле - помимо операций присваивания есть ещё оператор if, поэтому оптимизировать JIT-компилятору тут "некуда". Советую написать аналогичный код в чистом C++ и посмотреть, сколько времени уйдёт у него на выполнение. А почему на разных виндах и framework'ах разные результаты - леший его знает smile, по идее они не должны сильно отличаться (массив типизированный, никакие фичи второго дотнета не юзаются), но вот отличаются же...


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.