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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скорость C#, почему так? 
:(
    Опции темы
bankuss
Дата 5.5.2004, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: нет
Всего: 4



Решил я сравнить примерную скорость работы с числами и массивами 3-х языков: VB6, VB.net и C#.
И вот что вышло:
задачка такая - есть массив 800 на 800 набитый числами типа double. Производим его сортировку по возрастанию - по каждой линии отдельно (т.е. 800 сортировок по 800 чисел)
И вот время выполнения:
VB6 - 7 секунд
VB.net - 11 секунд
С# - 44 секунды (!!!)
Что вы на это скажите?

P.S. код в каждой программуле идентичный, все компилилось в exe (с оптимизациями на скорость) и там все мерялось (по 3 раза). машина - С-1300\256
PM MAIL   Вверх
AntonSaburov
Дата 5.5.2004, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

Репутация: 6
Всего: 118



Странно. И не объяснить это без кода. Хорошо бы код показать.
PM MAIL WWW ICQ   Вверх
bankuss
Дата 5.5.2004, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: нет
Всего: 4



вот бейсиковский текст проги:

Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim dat As Double
Dim dat2 As Double
Dim mass(800, 800) As Double
Label1.Text = "START"
Form1.ActiveForm.Refresh()
For a = 0 To 800
For b = 0 To 800
dat = 1 + Rnd()
mass(a, b) = dat
Next b
Next a
For b = 0 To 800
For a = 0 To 800
For c = 1 To 800
dat = mass(a, b)
dat2 = mass(c, b)
If dat > dat2 Then mass(a, b) = dat2 : mass(c, b) = dat
Next c
Next a
Next b
Label1.Text = "END"
End Sub

PM MAIL   Вверх
Гость_anton_misa
Дата 5.5.2004, 16:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а ты много раз запускал эту программу? и все тот же результат?
  Вверх
Kurt
Дата 5.5.2004, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



bankuss, прости, но ты что-то не то говоришь..
У меня AMD1600/256RAM.
Машина очень загружена - музыка, студия, 3 СУБД, но здесь эт не столь важно.
Вот мои переводы:

VB.NET:
Код

Module MainModule

   Sub Main()
       Dim mass(800, 800) As Double
       Dim i As Integer
       Dim j As Integer
       Dim a As Integer
       Dim b As Integer
       Dim c As Integer
       Dim MyRnd As Random = New Random()

       For i = 0 To 800
           For j = 0 To 800
               mass(i, j) = 1.0 + MyRnd.NextDouble()
           Next j
       Next i

       Dim dat, dat2 As Double
       Console.WriteLine("Starting.. Press <Enter>")
       Console.Read()
       Dim dt1 As DateTime = System.DateTime.Now
       For b = 0 To 800
           For a = 0 To 800
               For c = 1 To 800
                   dat = mass(a, b)
                   dat2 = mass(c, b)
                   If dat > dat2 Then mass(a, b) = dat2 : mass(c, b) = dat
               Next c
           Next a
       Next b

       Dim dt2 As DateTime = System.DateTime.Now
       Console.WriteLine("Done.")
       Console.WriteLine("Time: " + dt2.Subtract(dt1).ToString())
       Console.Read()
       Console.Read()

   End Sub

End Module


C#
Код

using System;

namespace SortSpeedTest
{
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;
 }
}
}


Как видишь, я тут очень грубо время вычислял время, но нам хватит.
Вобщем результаты:
VB.NET - в среднем 33-36 сек.
C#.NET - 30-34 сек.
(ну там из-за 1-го, 2-го запусков и т.п.)

Далее..
VB6 я тож проверил.
Тока сначала один вопрос - ты уверен, что
Цитата
Label1.Text = "START"

это из VB6? Там тока Label1.Caption.. Иль ты VB.NET и имел ввиду?..
Итак. Запустил я VB6-код, приготовился уловить момент в 7 секунд, ОДНАКО! Мой комп трудился на этими нехитрыми строчками почти 3,5 минуты! (еще запустил - таже картина)
Можь, ты чего-то не то посчитал?
Или это я где стормозил?.. hmmm.gif


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
bankuss
Дата 6.5.2004, 06:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: нет
Всего: 4



Да это код из VB.net а в 6-м бейсике конечно label1.caption вместо label1.text
PM MAIL   Вверх
bankuss
Дата 6.5.2004, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: нет
Всего: 4



подредактировал я свои проги - вставил System.DateTime.Now, функцию rnd в vb.net сделал как у тебя (похоже на C#). Все перепроверил 20 раз и еще раз протестировал.
Кстати у тебя C# коде ошибка:
mass[a,b]=dat; - здесь надо dat2
mass[c,b]=dat;
ну это мелочи smile.gif
Единственное отличие - я замер времени делаю с заполнения массива по завершение его сортировки., а у тебя меряется тока сортировка т.е. я вставляю DateTime dt1 = System.DateTime.Now перед заполнением массива.
И еще я проги деляю в виде формы с кнопкой, консоль не использую.
Теперь про VB6 - при компиляции ставишь на скорость и в advanced везде ставишь галки. Таким образом убираются всякие проверки.
И вот результаты:
VB6 - 6-7 секунд
VB.net - 11 секунд
C# - 11 секунд (наконец-то!)
мерял по 5 раз.
Вот такие дела...
PM MAIL   Вверх
AntonSaburov
Дата 6.5.2004, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

Репутация: 6
Всего: 118



Цитата
И вот результаты:
VB6 - 6-7 секунд
VB.net - 11 секунд
C# - 11 секунд (наконец-то!)

Это уже очень похоже на правду.
PM MAIL WWW ICQ   Вверх
Дрон
Дата 13.5.2004, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



Цитата
VB6 - 6-7 секунд
VB.net - 11 секунд
C# - 11 секунд (наконец-то!)

Так что же это получается, что C# в любом случае медленнее, чем VB6? sad.gif




--------------------
Да. Именно так.
PM   Вверх
Kurt
Дата 13.5.2004, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Не согласен.
Как я уже отмечал - у меня VB6 работает ГОРАЗДО медленнее.
Операционная система - WinXP SP2.


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
bankuss
Дата 14.5.2004, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: нет
Всего: 4



У меня тоже WinXP, только - SP1а.
C# приближается к VB6 только в консольном режиме (у меня получается 8 секунд), но VB6 все равно быстрей, что странно. Все-таки сишные компиляторы считаются самыми быстрыми.
PM MAIL   Вверх
Дрон
Дата 14.5.2004, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



Решил я сам проверить.
Дело в том, что в своих прогах я большое внимание уделяю быстродействию кода, часто дописываю что-нибудь на ассемблере и т.д.

Так вот результаты работы этой проги на AthlonXP 2500+ в WinXP:

~95c. - VB6 без компиляции (запущен из среды разработки);
~10c. - C# опции Release;
~10c. - VB.NET опции Release.
~10c. - VB6 в .exe с Optimize for Fast Code только;
~8c. - VB6 в .exe с Fast Code, Pentium Pro, Remove Array Bounds checks, Remove Safe Pentium FDIV, Allow Unrounded Floating Point;

Ну и смеха ради:
~4,2c. - C++Builder 6 со всеми оптимизациями;
~3,2с. - Visual C++ 6.0 с оптимизацией Speed, Pentium Pro;
~3,1c. - Visual C++ .Net (unmanaged) со всякими оптимизациями.
В managed C++ я откомпилировать не сумел.

Kurt, обрати внимание на первый результат, видимо ты так и получил эти 3,5 минуты.

Печально становится, товарищи, от такого быстродействия великого и могучего C# sad.gif



--------------------
Да. Именно так.
PM   Вверх
bankuss
Дата 17.5.2004, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: нет
Всего: 4



Спасибо мелкософту за такую скорость С#
smile.gif
PM MAIL   Вверх
chipset
Дата 17.5.2004, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 1
Всего: 165



Кто нибудь пробовал замерять быстродействие той же программы под ДОСом?
Цитата
~4,2c. - C++Builder 6 со всеми оптимизациями;

В очередной раз потверждает то что BC++ мертв...

Это сообщение отредактировал(а) chipset - 17.5.2004, 07:31


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
stab
Дата 17.5.2004, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 22
Всего: 48



Цитата
Печально становится, товарищи, от такого быстродействия великого и могучего C#


C# тут ни при чем, все дело в самой платформе .net, просто, надо принять как должное, что .net код работает несколько медленей, чем native код.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Chesnokov_A
Дата 17.5.2004, 19:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А вот пример на Java:
Цитата

public class JavaMain {
    public JavaMain() {
    }
    public static void main(String[] args) {
        // TODO code application logic here
        double mass[][] = new double[801][801];
        double dat,dat2;
        for(int i=0; i<801; i++){
            for(int j=0; j<801; j++){
                mass[i][j] = Math.random();
            }
        }
        System.out.println("Starting.. Press <Enter>");
        try{
          System.in.read();
        } catch(Exception ioe) {
        System.out.println("ERROR:" + ioe);
        }
        long dt1 = System.currentTimeMillis();
        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;
                    }
                }
            }
        }
        long dt2 = System.currentTimeMillis();
        System.out.println("Done");
        System.out.println("Time: " + (dt2-dt1));
        try{
          System.in.read();
          System.in.read();
        } catch(Exception ioe) {
        System.out.println("ERROR:" + ioe);
        }
    }
   
}

C:\Program Files\j2sdk1.4.2\bin>java JavaMain
Starting.. Press <Enter>

Done
Time: 18316
то есть 18 секунд

Для Тестирования использовались:
Pentium III 600MHz + 256MB
Windows 2000 + SP4
java version "1.4.2"
Java™ 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot™ Client VM (build 1.4.2-b28, mixed mode)
  Вверх
Kurt
Дата 17.5.2004, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Хм...
А вышеприведенные коды на C# и VB?.. hmmm.gif

З.Ы. Просто хочу получить суммарные данные с одной конкретной машины..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Kurt
Дата 17.5.2004, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Блин, я в шоке..
Прога на C# исполняется за 29 сек. (мой комп сильно загружен..), а приведенный код на Java - 24 сек!
Этого не может быть!
Я всегда смотрел на скорость Java vs C# с чувством некоторого превосходства..
А тут..
Что-то не то.. Где подвох?.. hmmm.gif


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Chesnokov_A
Дата 17.5.2004, 20:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата

Хм...
А вышеприведенные коды на C# и VB?..

Не надо сердится, я так, для примера запостил, самому интересно стало, я подумал, может кому то, тоже интересно будет
Цитата

З.Ы. Просто хочу получить суммарные данные с одной конкретной машины..

Примерно можно сопоставить так:
Теперь берем 18 секунд делим на (AthlonXP 2500/Pentium III 600)=~4, получается 4.32.
Попробовал запустить с опцией для виртуальной машины "-server" - получил 13 секунд, что примерно 3.12 на вашей
  Вверх
Kurt
Дата 17.5.2004, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Цитата
Не надо сердится

Не понимаю о чем ты - я просто спросил как работают остальные проги..
Однако, не будем об этом, дабы не разводить флейм. wink.gif
Как ты видел, у меня Java работает быстрее - опробуй C# на своей машине..

Да. У меня Athlon 1600, а не 2500..

З.Ы. Попутно приглашаю зарегестрироваться на нашем форуме - здесь всегда рады помочь, а кроме того будут рады твоей помощи.
wink.gif


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Дрон
Дата 17.5.2004, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



Щас на Jave проверю код Chesnokov'a. Я чего-то и забыл про неё smile.gif



--------------------
Да. Именно так.
PM   Вверх
Дрон
Дата 17.5.2004, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



В общем работало оно в среднем ровно 10 секунд.

Установлено:
Java Runtime Environment 1.4.1
А вот версия JDK у меня 1.0 и вообще компилятор доверия не вызывает.

Но!!! notify.gif exclamation.gif

Лохонулся я. Да и не только я.

Дело в том, что я c# и VB7 запускал и среды разработки, а стоило их запустить без неё, то получилось такое:

C# - 5,5 секунд
VB7 - 6 секунд

Так что у Java он всё-таки выигрывает, как и у VB6, так что жить можно.
hehe.gif hehe.gif hehe.gif


--------------------
Да. Именно так.
PM   Вверх
Kurt
Дата 18.5.2004, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Не - у меня без всяких сред Java отработывала быстрее (см. результаты выше..)
Слухайте, а вы в опциях C# оптимизацию ставили? Теперь C# обгоняет Java, правда, совсем чуток..
Интересно, а Managed C++ как отработает.. Есть люди, хорошо с ним знакомые?.. wink.gif
А с unsafe кто-нибудь близко знаком?.. Можь, с его помощью можно оптимизировать код? Типа чтоб он не проверял на выход массива за границу и т.п...
Сам особо не возился - не было нужды.. Попробую разобраться..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
bankuss
Дата 18.5.2004, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: нет
Всего: 4



Оказывается Java не так уж и медленно с числами работает smile.gif
Терпимо вобщем.
PM MAIL   Вверх
AntonSaburov
Дата 18.5.2004, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

Репутация: 6
Всего: 118



Модератор: Хотелось бы, чтобы данный топик не перешел во флейм Java vs .NET. Пока большая часть сообщений достаточно корректна, но я буду следить, чтобы это не перешло в обсуждение в форме - "Microsoft must die" или "Java медленная и все тут"


Цитата
Оказывается Java не так уж и медленно с числами работает. Терпимо вобщем.

Это большое заблуждение, что JAVA очень медленная. В расчетах она на проценты медленнее. А отнюдь не на порядки. Некоторые операции могут быть даже немного быстрее по скорости.

Понятно, что графика будет медленнее - она все-таки не напрямую через Win API работает. И алгоритмизация за счет универсальности тоже проигрывает по оптимальности.
То же относится к вводу-выводу.

НО !!! Java для расчетов работает очень прилично - это действительно так и есть. Просто надо компьютер с достаточным количеством памяти.

Недавно получил очень занятную статью от Domestic Cat http://www.idiom.com/~zilla/Computer/javaCbenchmark.html
PM MAIL WWW ICQ   Вверх
Chesnokov_A
Дата 18.5.2004, 10:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Щас на Jave проверю код Chesnokov'a. Я чего-то и забыл про неё

Ну так какие результаты получились?
  Вверх
Baa
Дата 19.5.2004, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 1
Всего: 12





--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Kurt
Дата 19.5.2004, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Хммм.. Однако "итог" той темы - C# быстрее Delphi.
Я написал аналог тестового кода на Delphi:

Код

program SpeedTest1;

{$APPTYPE CONSOLE}

uses
 SysUtils,
 System;

var mass: array[1..801,1..801] of double;
   dat: double;
   dat2: double;
   a: integer;
   b: integer;
   c: integer;
   dt1: TDateTime;
   dt2: TDateTime;
begin
 for a:=1 to 801 do
   for b:=1 to 801 do
     mass[a,b]:= random;
 writeln('Starting.. Press <Enter>');
 readln;
 dt1:= Time;
 for b:= 1 to 801 do
   for a:= 1 to 801 do
     for c:= 1 to 801 do begin
       dat:= mass[a,b];
       dat2:= mass[c,b];
       if (dat>dat2) then begin
         mass[a,b]:= dat2;
         mass[c,b]:= dat;
       end;
     end;
 dt2:= Time;
 writeln('Done.');
 writeln('Time: ',DateTimeToStr(dt2-dt1));
 readln;
end.

Согласен, слабоватый способ узнавать время выполнения, но все же..
Данный код у меня выполняется за 23 сек (в среднем..), против 29-30 by C#.
Так что... Какие-то противоречивые результаты получаются..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
bankuss
Дата 19.5.2004, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: нет
Всего: 4



может еще зависит на каком проце код исполняется? intel или amd
PM MAIL   Вверх
stron
Дата 19.5.2004, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Консультант
***


Профиль
Группа: Комодератор
Сообщений: 1654
Регистрация: 17.7.2003
Где: Питер

Репутация: 4
Всего: 36



....или на какой операционке
Знаю, что у Kurt'а XPень и amd'шный проц


--------------------
подписи нет
PM ICQ   Вверх
Kurt
Дата 19.5.2004, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Цитата
....или на какой операционке
Знаю, что у Kurt'а XPень и amd'шный проц

WinXP SP2. Athlon 1600 MX. 256RAM
Комп очень загружен всякой ерундой, однако..
Оптимизированный C#-код исполняется за 24-25 сек, в то время как дельфовый - 22-23..
Небольшая разница, но все же..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Дрон
Дата 19.5.2004, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



Kurt
А ты C# точно без отладчика запускал? В смысле Start Without Debugging а не просто Start.
Как я уже писал у меня ~5 секунд работает, а с отладчиком ~10с..
Ну не может же быть твой комп в 5 раз медленнее моего hmmm.gif

У меня WinXP SP1, Athlon XP 2500+ (512Кб кэша), 512Mb RAM.

Я дельфёвый код проверю завтра, правда у меня есть только Delphi 3.0 smile.gif

ЗЫ: Как видишь, Kurt, я появился в этом разделе раньше, чем планировал smile.gif smile.gif smile.gif

Добавлено @ 23:58
2AntonSaburov
Цель участия в этом топике для меня -- определиться с областью применения C# в частности и .NET в целом.
Я просто не люблю забивать гвозди микроскопом (правда иногда приходится smile.gif ).
Мне нужно знать какова цена этого удобства, надёжности и безопасности технологии .NET

Никакого злого умысла smile.gif

Это сообщение отредактировал(а) Дрон - 19.5.2004, 23:58


--------------------
Да. Именно так.
PM   Вверх
Kurt
Дата 20.5.2004, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Цитата
А ты C# точно без отладчика запускал? В смысле Start Without Debugging а не просто Start.
Как я уже писал у меня ~5 секунд работает, а с отладчиком ~10с..
Ну не может же быть твой комп в 5 раз медленнее моего

Я вообще без студии запускал. На .exe кликал..
Мой комп очень загружен - антивирусники, NortonProtect, Oracle, Cache и т.д.
Хотя ты прав - надо поглядеть, как его ускорить..

Цитата
Я дельфёвый код проверю завтра, правда у меня есть только Delphi 3.0

А без разницы - эт консольный проект. Хоть в Borland Pascal 7.0 проверяй.
А разница между скоростью исполнения кодов, написанных в разных Delphi, не будет такой уж значительной.

Цитата
ЗЫ: Как видишь, Kurt, я появился в этом разделе раньше, чем планировал

Дык.. Что могу сказать.. Welcome! smile.gif
Всегда рады пополнению личного состава..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Kurt
Дата 20.5.2004, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Ой-ой.. Руки мои кривые!
При Start Without Debugging ~16 сек!
Как же я так промухал..
Однако, мы сравниваем оптимизированный код на C# с "обычным" кодом Delphi. Там же тоже можно повозиться..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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