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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скорость C#, почему так? 
:(
    Опции темы
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   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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