Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Очередные данные о "медленности" JAVA 
:(
    Опции темы
AntonSaburov
Дата 18.6.2004, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



PM MAIL WWW ICQ   Вверх
LSD
Дата 18.6.2004, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Я где то видел подобный тест, для теста была выбранна игра жизнь, и проводился замер времени затраченного на N итераций. И Java там себя показала тоже очень достойно. Предлагаю провести такое тестирование самостоятельно. Кто хочет покчаствовать пишите.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
redrick
Дата 18.6.2004, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 5



спасибо большое - впервые увидел подобные тесты, до этого слышал только что Java обгоняет C++ на Sun Sparc, что вроде как не так впечатляет. Сплош и рядом сионисты кричат, что дескать виртуальная машина - это гроб в плане производительности


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
Domestic Cat
Дата 18.6.2004, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 50
Всего: 172



JIT / HotSpot переводит bytecode в нативныи, так что подобная скорость неудивительна smile.gif

Это сообщение отредактировал(а) Domestic Cat - 18.6.2004, 23:56


--------------------

PM   Вверх
Domestic Cat
Дата 20.6.2004, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 50
Всего: 172



Две программы:

Код

// C
#include <stdio.h>
#include <time.h>

unsigned int f;
unsigned int factorial (unsigned int a);

main()
{  
   clock_t t1 = clock();
   int i;
   for (i = 0; i < N; i++)
   {
       f = factorial(100);
   }
   clock_t t2 = clock();
   printf("\n Program execution time is %u milliseconds \n", (t2 - t1) * 10);
}

unsigned int factorial(unsigned int a)
{
   if (a == 1) return 1;
   else
   {
       a *= factorial(a - 1);
       return a;
   }
}

Код

// Java
public class Test
{
   public static void main(String [] args)
   {
       long t1 = System.currentTimeMillis();
       int f;
       for (int i = 0; i < N; i++)
       {
           f = factorial(100);
       }
       System.out.println("\n Program execution time is " + (System.currentTimeMillis() - t1) +
                                      "   milliseconds");    
   }
   public static int factorial(int a)
   {
       if (a == 1) return 1;
       else
       {
           a *= factorial(a - 1);
           return a;
       }
   }
}

Я использовал си компилятор
Код

gcc (GCC) 3.3 20030304 (Apple Computer, Inc. build 1495)
Copyright (C) 2002 Free Software Foundation, Inc.

и Java
Код

java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-117.1)
Java HotSpot(TM) Client VM (build 1.4.2-34, mixed mode)

Вот результаты нескольких запусков,

C обозначает
gcc -o test test.c
./test

C1 -
gcc -O -o test test.c
./test

C3 -
gcc -O3 -o test test.c
./test

Java -
javac -O Test.java
java Test

(Программа всегда выдает "Program execution time is x milliseconds", я привожу только число)
N - число циклов с программе, всего привожу по три результата. Результаты для javc -O Test.java и javac Test.java практически не отличаются.
Код

N = 1000000

  C          C1      C3       Java
6710       2710     2710    4660
6630       2740     2770    4646
6620       2650     2820    4550


Код

N = 100000

  C          C1        C3         Java
700        300        280      429
680        290        280      431
660        280        270      443



Код

N = 10000

  C           C1         C3       Java
 70           20         30        40
 70           30         30        31
 70           30         30        29


Это сообщение отредактировал(а) Domestic Cat - 20.6.2004, 00:23


--------------------

PM   Вверх
Domestic Cat
Дата 21.6.2004, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 50
Всего: 172



Повторил тест, только усреднил время по 20 запускам и добавил

JavaS обозначает
javac Test.java
java -server Test

Цифры - среднее время выполнения в ms (чем меньше тем лучше)
Код

N = 1000000

C         6693
C1       2741
Java    2759.55    
JavaS  2589.8


Код

N = 100000

C         667.5
C1       282         
Java     262.45    
JavaS   260.95


Код

N = 10000

C         67.5      
C1       29        
Java    26.8   
JavaS  26.4


smile.gif smile.gif biggrin.gif

Это сообщение отредактировал(а) Domestic Cat - 21.6.2004, 16:51


--------------------

PM   Вверх
LSD
Дата 23.6.2004, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Наконец нашел время заняться этим делом smile.gif .
Прогнал тест Domestic Cat и вот что получил:
Использовался компилятор Microsof Visual C++ 6.0, Borland C++ Builder 6.0 с предустановками Release и Optimisation: perfomance. Для Java использовалась JDK 1.4.2_01, копилировалась с ключами -O и -g:none.
AMD Athlon XP 2000, RAM 768Mb, Windows XP Pro SP1
Код

Borland C++ Builder | Microsoft Visual C++ | Java client VM | Java server VM
--------------------+----------------------+----------------+----------------
            77,192с |              68,211с |        70,391с |        42,547с

Intel Celeron 1300, RAM 256Mb, Windows 2000 Pro SP4
Код

Borland C++ Builder | Microsoft Visual C++ | Java client VM | Java server VM
--------------------+----------------------+----------------+----------------
           111,192с |              91,651с |       100,272с |        59,901с


Добавлено @ 21:21
Через пару деньков доделаю програмку жизнь и выложу результаты.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
LSD
Дата 27.6.2004, 22:40 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



В коде Domestic Cat есть небольшая ошибка, факториал 100 не поместится в 4-х байтовое целое, исправил ее и заодно скомпилил под Delphi получились очень интерестные результаты:
Код
Borland C++ Builder | Borland Delphi | Microsoft Visual C++ | Java client VM | Java server VM
--------------------+----------------+----------------------+----------------+----------------
             102,7  |           97,2 |                 96,5 |           78,9 |           38,6

это усредненные результаты после 10 запусков. Четно говоря столь слильного преимущества Java я не ожидал.
Добавлено @ 22:42
Забыл указать:
Машина: AMD Athlon XP 2000, RAM 768Mb, Windows XP Pro SP1
Компиляторы: Borland Delphi 5.5 и плюс те же что и ранее.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Sardar
Дата 27.6.2004, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Результаты впечатляют. По моему у серверной Явы коронка: быстрые вызовы функций(тоже где то в тесте было). Факториал вычисляется рекурсивно, отсюда и столь впечатляющий результат... наверное... smile.gif


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
LSD
Дата 19.3.2005, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



В связи с очередными дускусиями Java v.s. C++ решил поднять темку.

На этот раз думаю надо взять програмку посерьезней. Я предлагаю все ту же жизнь, а заодно добавить сюда еще одного новичка: C#. Предполагается псевдо-бесконечное поле, реализуемое с помощью хеш-таблиц. На нем размещается парочка глайдерных ружей и кто быстрее выполнит заданное количество итераций.

У меня есть готовый код для Java и C#, для C++ надо чтобы кто-нить взялся его написать, т.к. я с ним не знаком. Программа порождает много объектов, можно будет посмотреть где сборщик мусора эффективней и что выгодней сборщик мусора или ручное выделение памяти.


Присоединённый файл ( Кол-во скачиваний: 77 )
Присоединённый файл  Life.zip


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Domestic Cat
Дата 19.3.2005, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 50
Всего: 172



НЕ понял, ты с шарпом не знаком или С++? Если шарп - то я возьмусь.
Добавлено @ 02:32
Все, вопрос снят, нужен С++.


--------------------

PM   Вверх
LSD
Дата 19.3.2005, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Лекции по С++, я прогуливал smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Domestic Cat
Дата 19.3.2005, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 50
Всего: 172



На это дело надо С++ шников брать, иначе обвинят smile


--------------------

PM   Вверх
chipset
Дата 19.3.2005, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Domestic @ 18.3.2005, 15:40)
На это дело надо С++ шников брать, иначе обвинят smile

А в чём собссна дело? smile Мы вылижем код до дыр smile
Что, где, когда писать?
Добавлено @ 06:36
Увидел Ж)

Это сообщение отредактировал(а) chipset - 19.3.2005, 06:36


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


Эксперт
****


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

Репутация: 50
Всего: 172



Ну, у меня C# и Java наравне - при компиляции jikes -g:none -O , флаге -server и подборе -Xmn.


--------------------

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

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


 




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


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

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