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

Поиск:

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


Опытный
**


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

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



Domestic Cat, согласен
PM MAIL   Вверх
хочу работать с Java
Дата 12.1.2006, 23:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Господа, хотелось бы услышать мнения о работе в Java с плавающей точкой. На рсдн, в тестах, приводятся просто потрясающие результаты Java по этому направлению - Java ставят в один ряд с VB. Неужели всё так плохо?
  Вверх
LSD
Дата 13.1.2006, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(хочу работать с Java @ 12.1.2006, 23:50 Найти цитируемый пост)

Господа, хотелось бы услышать мнения о работе в Java с плавающей точкой. На рсдн, в тестах, приводятся просто потрясающие результаты Java по этому направлению - Java ставят в один ряд с VB. Неужели всё так плохо?

Ха! А что ты хотел от этого оплота Майкрософта smile

Накидай пару тестиков и сравни, вопрос только с чем? С C++, C#, VB.NET или что еще?
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   Вверх
jer1
Дата 16.1.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



взял программу Коть и запустил у себя
Вот программы которые я использовал:
Код
#include <stdio.h>
#include <time.h>

const int N = 1000000;

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;
    }
}

Код

public class JavaSpeedTest {
    public static final int COMPUTE_COUNT = 1000000;

    public static void main(String [] args)
    {
        long t1 = System.currentTimeMillis();
        int f = 0;
        for (int i = 0; i < COMPUTE_COUNT; 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;
        }
    }
}

Код

program DelphiSpeedTest; //Delphi 5.62
{$APPTYPE CONSOLE}
uses
  SysUtils;

const
    COMPUTE_COUNT: integer = 1000000;

    function factorial(a: integer): integer; begin
        if (a = 1) then factorial := 1
        else begin
            a := a * factorial(a - 1);
            factorial := a;
        end;
    end;

var
   i: integer;
   time0, time1 : TDateTime;
   Year, Month, Day, Hour, Min, Sec, MSec: Word;
   f: integer;
begin
   time0 := now;
   for i := 0 to COMPUTE_COUNT do f := factorial(100);
   time1 := now;
   DecodeTime(time1 - time0, Hour, Min, Sec, MSec);
   write('Program execution time is ');
   write(intToStr(1000*sec+mSec)); write(' in miliseconds');
end.

компьютер Celeron 1.2 256M os: XP Professional, Linux Slackware ядро 2.4.26
jdk:
java version "1.5.0_04"
Java™ 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot™ Client VM (build 1.5.0_04-b05, mixed mode, sharing)

результаты в миллисекундах (три запуска):
delphi 5: 1141; 1140; 1156
java XP: 1187; 1203; 1187
java linux: 1201; 1189; 1203
java linux server: 685; 696; 705
c (gcc -o test2 CSpeedTest.c ): 19000000; 19000000; 19100000
c(gcc -O3 -o test CSpeedTest.c): 10800000; 11000000; 10800000
gcj (gcj -c -g -O JavaSpeedTest.java; gcj --main=JavaSpeedTest -o GCJSpeedTest JavaSpeedTest.o ): 2815; 2826; 2828
--------------------
:w!q
PM MAIL   Вверх
Бонифаций
Дата 25.1.2006, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Другими словами С получился в тысячи раз медленнее? smile не верю. При всем уважении к java.


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
erka
Дата 25.1.2006, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



как по мне, clock() не миллисекунды выводит

Смотрим например сюда - http://www.phim.unibe.ch/comp_doc/c_manual/C/MAN/clock.htm

The value returned is the CPU time used so far as a clock_t; to get the number of seconds used, divide by CLOCKS_PER_SEC.
PM MAIL   Вверх
beartamer
Дата 20.3.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте

Я только начал знакомиться с Java и у меня сразу возник вопрос относительно производительности типичных приложений (допустим Swing), связанный с расходом памяти.

Как я понимаю, для каждого процесса создается экземпляр виртуальной машины и память вместе с процессом-приложением и всеми используемыми библиотеками занимает и jvm. Даже 10 совершенно одинаковых GUI приложений занимают в памяти примерно столько, сколько одно приложение * 10, словно никакого совместного использования библиотек и быть не может.

Это нормально? Может быть я что-то делаю не так? Простейший Sample Swing App из поставки с NetBeans 5.0, будучи запущен в 10 экземплярах, занимает всю мою свободную память на рабочей станции... Трудно себе представить что на рабочей станции будет работать более 5 даже простейших приложений Java - каждое займет по 15-25 мб.

Как-то это отталкивает, что ли.. Скажите как справиться? Срочно требуется идеологическая поддержка smile

P.S. я тут первый раз заглянул, надеюсь никаких традиций древних постом не нарушу

Это сообщение отредактировал(а) beartamer - 20.3.2006, 16:19
PM MAIL   Вверх
batigoal
Дата 20.3.2006, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Цитата(beartamer @ 20.3.2006, 17:18 Найти цитируемый пост)
Это нормально? Может быть я что-то делаю не так?

Да, это нормально. Ведь запуском java ... порождается новый процесс, и так для каждого приложения. Если не ошибаюсь, есть возможность запустить несколько десктопных приложений и под одной виртуальной машиной, но как это сделать - не знаю.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Nobody
Дата 21.3.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Lamer George, Написать свой запускатор, который будет жить в явамашине и дёргать main-методы? smile


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
batigoal
Дата 21.3.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Цитата(Nobody @ 21.3.2006, 15:34 Найти цитируемый пост)
Написать свой запускатор, который будет жить в явамашине и дёргать main-методы? smile

А Бог его знает, почему бы и нет. smile

Кстати, вот только что наткнулся в мануале Анта на опцию fork таска java. Она как раз отвечает за запуск приложения в рамках той же JVM, что и Ant, или во внешней. По умолчанию - в одной.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
beartamer
Дата 21.3.2006, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так всё таки насколько это просто и естественно - запустить пару-тройку приложений разделяющих виртуальную машину и библиотеки классов? А то получается что писать простые пользовательские приложения на Java просто смысла нет - памяти не напасешься...
smile

PM MAIL   Вверх
kkorsakoff
Дата 21.3.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Блин был какой-то продукт. Не могу вспомнить название. Суть в том, что он стартовал при запуске системы. При запуске java-приложения не создается новая виртуальная машина, а оно запускается внутри той единственной. Получаем большой выигрыш в скорости загрузки. Постараюсь вспомнить.
PM MAIL WWW ICQ   Вверх
batigoal
Дата 21.3.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Цитата(beartamer @ 21.3.2006, 16:40 Найти цитируемый пост)
А то получается что писать простые пользовательские приложения на Java просто смысла нет - памяти не напасешься...

В общем-то, так и есть, если нет необходимости в кросс-платформенности.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
SaDFromSpb
Дата 2.6.2006, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я в этом треде вычитал такую мысль, что sun'овская ява считается клиентской (потому что не достаточно сбоеустойчивая). Позвольте, господа, а чья же ява считается серверной тогда?

По поводу производительности джаги и си - тут мелькала уже разумная мысль, что в больших проектах критичным становится объем занимаемой памяти. Достаточно ли хорошо и быстро работает автоматический сборщик мусора?
К тому же джага больно жадная до памяти по мелочи. Вроде (хотя надо бы, конечно, проверить) аналоги сишных строк, контейнеров и т.д, на яве занимают больше памяти (хотя бы потому что у них иерархия аж от Object'a у всех).
Затем, при работе со всевозможными очень удобными классами в яве бывают накладные расходы по количеству операций (например объекты класса String во многих местах неявно копируются).
Графический интерфейс в яве очевидно медленнее, чем написанный на "нативном языке" (не надо меня убеждать в обратном, я уж насиделся в IntlliJ IDEA на втором пне).
В общем, я хочу сказать, что реальные работающие приложения не числа фибоначи считают. И интереснее посмотреть на результаты более приближенных к жизни тестов.

ЗЫ: Я против явы ничего против не имею. Ява - это такой "программистский рай", без отслеживания кусков не нужной более памяти и с огромной кучей готового и удобного (Особенно мне понравилось, как здорово в ней воплотили многие паттерны проектирования в графическом интерфейсе).  

Это сообщение отредактировал(а) SaDFromSpb - 2.6.2006, 18:32


--------------------
"За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001)
PM   Вверх
batigoal
Дата 2.6.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Что касается тех проектов, в которых участвовал я - Java-приложения вообще не становились узким местом системы. Как правило, нагрузка ложилась на базу (немалая часть логики находится в ней), и на сеть. А скорость выполнения ява-кода в оптимизации не нуждалась. Впрочем, я уверен, что существуют проекты, для которых именно этот пункт становится камнем преткновения. 


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

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

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


 




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


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

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