Re[22]: Внимание, Java!
От: hattab  
Дата: 16.07.10 05:25
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> C>>Проблема в том, что тестировать Java надо аккуратно. В ней JIT-компиляция происходит не сразу, а по результатам профилирования кода (HotSpot). Поэтому надо дать ей время, чтоб она оптимизировалась. Разница в таких микротестах от этого огромная, здесь почти в 10 раз. Ещё можно заняться тюнингом GC, где-то в два раза ещё получится ускорить.


C> CC>Можно ли как то жаббу собрать всё таки в бинарь, который не потребует установки рантайма для своего запуска?


C> Нельзя. Точнее, можно, но там GC сильно хуже будет.


C> CC>Хочется поиграться и посмотреть что к чему.


C> Поставь себе JDK и не мучайся, там всё необходимое для теста есть.


У меня установлен, как запустить на выполнение (Windows)?
avalon 1.0rc3 rev 345, zlib 1.2.3
Re[4]: Внимание, Java!
От: hattab  
Дата: 16.07.10 05:25
Оценка:
Здравствуйте, -MyXa-, Вы писали:

MX> Тут ещё стоит заметить, что вариант на С++ использует почти в 2 раза больше оперативной памяти, чем на Java.


MX> http://files.rsdn.ru/46238/java_and_cpp.png


А цифры абсолютные где? Чем снимал, что снимал?
avalon 1.0rc3 rev 345, zlib 1.2.3
Re[21]: Внимание, Java!
От: Eugeny__ Украина  
Дата: 16.07.10 09:15
Оценка:
Здравствуйте, CreatorCray, Вы писали:


CC>>>Где там в десятки раз медленнее?

C>>Здесь:
C>>Проблема в том, что тестировать Java надо аккуратно. В ней JIT-компиляция происходит не сразу, а по результатам профилирования кода (HotSpot). Поэтому надо дать ей время, чтоб она оптимизировалась. Разница в таких микротестах от этого огромная, здесь почти в 10 раз. Ещё можно заняться тюнингом GC, где-то в два раза ещё получится ускорить.

CC>Можно ли как то жаббу собрать всё таки в бинарь, который не потребует установки рантайма для своего запуска?

CC>Хочется поиграться и посмотреть что к чему.

Можно, но это будет уже черти-что, а не жаба.

Чего ты так рантайма-то боишься? Его установка — минутное дело.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[23]: Внимание, Java!
От: Cyberax Марс  
Дата: 16.07.10 09:22
Оценка:
Здравствуйте, hattab, Вы писали:

C>> Поставь себе JDK и не мучайся, там всё необходимое для теста есть.

H>У меня установлен, как запустить на выполнение (Windows)?
Компиляция "JDK_ROOT\bin\javac Foo.java" в каталоге с Foo.java, получится файлик Foo.class.

Запуск на выполнение: "JDK_ROOT\bin\java -cp . Foo" (NB! Не Foo.class, а просто Foo) в каталоге с Foo.class.
Sapienti sat!
Re[6]: Внимание, Java!
От: CreatorCray  
Дата: 16.07.10 10:08
Оценка:
Здравствуйте, Ikemefula, Вы писали:

CC>>Что и требовалось доказать: у С++ длиннее и толще!

I>Для дотнета тесты можно глянуть здесь http://rsdn.ru/article/dotnet/GCnet.xml
Автор(ы): Игорь Ткачев
Дата: 06.12.2002
Алгоритм работы сборщика мусора (garbage collector, далее просто GC), являющегося частью CLR, подробно описан в книге Джефри Рихтера (Jeffrey Richter) «Applied Microsoft .NET Framework Programming». Мы не будем приводить здесь столь же подробное описание этого алгоритма, но обязательно остановимся на некоторых ключевых моментах.

В статье присутствует некий мифический хип С++.
А вообще там забавные картинки типа:
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[22]: Внимание, Java!
От: CreatorCray  
Дата: 16.07.10 11:14
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>Чего ты так рантайма-то боишься? Его установка — минутное дело.

Зато потом выносить его отовсюду гемор тот ещё.
На работе на предыдущем компе поставил как то.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[23]: Внимание, Java!
От: Eugeny__ Украина  
Дата: 16.07.10 11:57
Оценка:
Здравствуйте, CreatorCray, Вы писали:

E__>>Чего ты так рантайма-то боишься? Его установка — минутное дело.

CC>Зато потом выносить его отовсюду гемор тот ещё.
CC>На работе на предыдущем компе поставил как то.

Хм... Откуда отовсюду? Я, правда, под винду давно не ставил, но вроде как прописывается жаба мало где. В принципе, java вообще может ставиться простым копирпованием(и отлично работать), программа инсталляции — это тупо набор свистелок и перделок, которые для работы вообще не нужны.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[18]: Внимание, Java!
От: NikeByNike Россия  
Дата: 16.07.10 12:18
Оценка:
Здравствуйте, CreatorCray, Вы писали:

NBN>>http://wiki.forum.nokia.com/index.php/FAQ_%D0%BF%D0%BE_%D0%B4%D0%B5%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D1%80%D0%B0%D0%BC

CC>Посмотрел. Ничего в общем то нового.

Да в C++ уже давно ничего нового нет Это просто нормальная и удобная система.

CC>Заточка на специфическое использование.


В чём специфичность? По моему наоборот — вполне себе обще, удобно и безопасно.
Нужно разобрать угил.
Re[24]: Внимание, Java!
От: hattab  
Дата: 16.07.10 17:01
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C> C>> Поставь себе JDK и не мучайся, там всё необходимое для теста есть.


C> H>У меня установлен, как запустить на выполнение (Windows)?


C> Компиляция "JDK_ROOT\bin\javac Foo.java" в каталоге с Foo.java, получится файлик Foo.class.


C> Запуск на выполнение: "JDK_ROOT\bin\java -cp . Foo" (NB! Не Foo.class, а просто Foo) в каталоге с Foo.class.


Все получилось Дельфийский тест переписал аналогично жабьему. Результаты:

Phenom II X4 940BE 3300MHz:
Java: 3, 80000

Delphi 20, 80000


Посыпаю голову пеплом, в прошлом тесте забыл проинициализировать Stopwatch (оказывается его, advanced record, необходимо инициализировать, как и объекты. Дурдом ) отсюда и столь хорошие показатели Во время прогона Java-тест отожрал ~780Mb, Delphi-тест ~22Mb (ProcessExplorer, PrivateBytes). Система Windows 7 x64. Delphi-тест 32'битный, JDK и JRE 1.6 64'битные.
avalon 1.0rc3 rev 345, zlib 1.2.3
Re[25]: Внимание, Java!
От: Cyberax Марс  
Дата: 16.07.10 17:11
Оценка:
Здравствуйте, hattab, Вы писали:

H>Посыпаю голову пеплом, в прошлом тесте забыл проинициализировать Stopwatch (оказывается его, advanced record, необходимо инициализировать, как и объекты. Дурдом ) отсюда и столь хорошие показатели Во время прогона Java-тест отожрал ~780Mb, Delphi-тест ~22Mb (ProcessExplorer, PrivateBytes). Система Windows 7 x64. Delphi-тест 32'битный, JDK и JRE 1.6 64'битные.

780Мб — многовато, можно настройками GC оптимизировать. В среднем, должно быть 10Мб + объём_памяти_на_С++ * 3.
Sapienti sat!
Re[26]: Внимание, Java!
От: hattab  
Дата: 16.07.10 17:36
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> H>Посыпаю голову пеплом, в прошлом тесте забыл проинициализировать Stopwatch (оказывается его, advanced record, необходимо инициализировать, как и объекты. Дурдом ) отсюда и столь хорошие показатели Во время прогона Java-тест отожрал ~780Mb, Delphi-тест ~22Mb (ProcessExplorer, PrivateBytes). Система Windows 7 x64. Delphi-тест 32'битный, JDK и JRE 1.6 64'битные.


C> 780Мб — многовато, можно настройками GC оптимизировать. В среднем, должно быть 10Мб + объём_памяти_на_С++ * 3.


Вот с такой "java -Xmx64M -cp . Foo" командной строкой расход составляет около 92Mb, а время скачет от 6 до 45.
avalon 1.0rc3 rev 345, zlib 1.2.3
Re[27]: Внимание, Java!
От: Cyberax Марс  
Дата: 16.07.10 17:55
Оценка:
Здравствуйте, hattab, Вы писали:

C>> H>Посыпаю голову пеплом, в прошлом тесте забыл проинициализировать Stopwatch (оказывается его, advanced record, необходимо инициализировать, как и объекты. Дурдом ) отсюда и столь хорошие показатели Во время прогона Java-тест отожрал ~780Mb, Delphi-тест ~22Mb (ProcessExplorer, PrivateBytes). Система Windows 7 x64. Delphi-тест 32'битный, JDK и JRE 1.6 64'битные.

C>> 780Мб — многовато, можно настройками GC оптимизировать. В среднем, должно быть 10Мб + объём_памяти_на_С++ * 3.
H>Вот с такой "java -Xmx64M -cp . Foo" командной строкой расход составляет около 92Mb, а время скачет от 6 до 45.
Ага, похоже на правду. Теперь надо ещё затюнить GC обратно чтоб работал быстро.
Sapienti sat!
Re[3]: Внимание, Java!
От: Nik_1 Россия  
Дата: 16.07.10 18:16
Оценка:
Здравствуйте, Eugeny__, Вы писали:

Это все конечно хорошо, но есть один ньюанс

Производительность 99% кода неособо вожна, но когда в приложении вдруг возникнет проблема с перфомонсом, то этот 1% кода в плюсах можно оптимизировать и получить требуемый результат, а в жаве нет В плюсах и алокатор можно на свой очень быстрый свой поставить, и строки более умные использовать, и исбавиться лишнего копирования перейдя на указатели на обьекты — и будет этот код менее милисекунды работать. А вот в джаве если упрешся в перфоманс — ничего сделать с этим не сможешь.
Re[28]: Внимание, Java!
От: hattab  
Дата: 16.07.10 19:25
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> C>> H>Посыпаю голову пеплом, в прошлом тесте забыл проинициализировать Stopwatch (оказывается его, advanced record, необходимо инициализировать, как и объекты. Дурдом ) отсюда и столь хорошие показатели Во время прогона Java-тест отожрал ~780Mb, Delphi-тест ~22Mb (ProcessExplorer, PrivateBytes). Система Windows 7 x64. Delphi-тест 32'битный, JDK и JRE 1.6 64'битные.


C> C>> 780Мб — многовато, можно настройками GC оптимизировать. В среднем, должно быть 10Мб + объём_памяти_на_С++ * 3.


C> H>Вот с такой "java -Xmx64M -cp . Foo" командной строкой расход составляет около 92Mb, а время скачет от 6 до 45.


C> Ага, похоже на правду. Теперь надо ещё затюнить GC обратно чтоб работал быстро.


java -Xincgc -Xmx64M -cp . Foo

Расход 106Mb, время от 4 до 12.
avalon 1.0rc3 rev 345, zlib 1.2.3
Re[29]: Внимание, Java!
От: Cyberax Марс  
Дата: 16.07.10 19:45
Оценка:
Здравствуйте, hattab, Вы писали:

C>> Ага, похоже на правду. Теперь надо ещё затюнить GC обратно чтоб работал быстро.

H>java -Xincgc -Xmx64M -cp . Foo
H>Расход 106Mb, время от 4 до 12.
Инкрементальный GC здесь не очень подходит. Он даёт меньшие паузы за счёт бОльшего оверхеда.

Можно попробовать конкурентный mark&sweep, но он может банально не справиться с таким напором объектов.

Могу дома поиграться с опциями.
Sapienti sat!
Re[30]: Внимание, Java!
От: hattab  
Дата: 16.07.10 20:20
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> C>> Ага, похоже на правду. Теперь надо ещё затюнить GC обратно чтоб работал быстро.


C> H>java -Xincgc -Xmx64M -cp . Foo

C> H>Расход 106Mb, время от 4 до 12.

C> Инкрементальный GC здесь не очень подходит. Он даёт меньшие паузы за счёт бОльшего оверхеда.


C> Можно попробовать конкурентный mark&sweep, но он может банально не справиться с таким напором объектов.


C> Могу дома поиграться с опциями.


Было бы интересно
avalon 1.0rc3 rev 345, zlib 1.2.3
Re[24]: Внимание, Java!
От: CreatorCray  
Дата: 16.07.10 20:54
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>Хм... Откуда отовсюду? Я, правда, под винду давно не ставил, но вроде как прописывается жаба мало где.

Ну вот на оффсайте лежит инсталляк который лезет в браузер, в системе какие то апдейтеры и апплеты прописывает.

E__>В принципе, java вообще может ставиться простым копирпованием(и отлично работать)

Где взять Java.rar который достаточно тупо распаковать в папку и чтоб больше нигде и ничего?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Внимание, Java!
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 17.07.10 11:44
Оценка: -2
Здравствуйте, Nik_1, Вы писали:

N_>Производительность 99% кода неособо вожна, но когда в приложении вдруг возникнет проблема с перфомонсом, то этот 1% кода в плюсах можно оптимизировать и получить требуемый результат, а в жаве нет В плюсах и алокатор можно на свой очень быстрый свой поставить, и строки более умные использовать, и исбавиться лишнего копирования перейдя на указатели на обьекты — и будет этот код менее милисекунды работать. А вот в джаве если упрешся в перфоманс — ничего сделать с этим не сможешь.


И ради этого 1% тебе надо постоянно, чт бы ты не писал, думать о тысячах мелочей.

В джаве можно сосредоточиться на более высокоуровневой оптимизации.
Re[2]: C++ и производительность
От: minorlogic Украина  
Дата: 18.07.10 11:03
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Вот поэтому я и не люблю эти ваши STL и Boost. List, deque, string и прочие начинают терзать и рвать в клочья аллокатор, из за чего производительность просаживается в тысячи раз, а оверхед по памяти возрастает в десятки. String вообще использовать категорически нельзя. std::vector<char> — более-менее терпимо. А списки и дерева должны быть интрузивными.


Для использования в проекте можно взять конкректную реализацию , например STLPort.


Но различные имплементации STL это не слабость библиотеки а ее сила. Тем самым производитель компилатора может оптимизировать версию STL под конкретную среду или сценарий использования.
Например на PC можно выделять память для связанного списка, непрерывнвми блоками памаяти по N элементов.
Алгоритмы STL могут использовать спецефические для платформы оптимизации и т.п.

Таким образом используя STL с одной стороны можно надеяться что она будет максимально эфективной для конкретной платформы а с другой стороны всегда можно использовать заданную имплементацию с предсказуемым поведением.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Внимание, Java!
От: -MyXa- Россия  
Дата: 18.07.10 16:29
Оценка:
Здравствуйте, hattab, Вы писали:

H>А цифры абсолютные где? Чем снимал, что снимал?


Это "Хронология использования физической памяти" в приложении "Диспетчер задач Windows".

При цикле до 200000, кажется.

Ява ~ 3ГБ, С++ ~ 6ГБ

Только это всё не важно. Я хотел показать, что Eugeny__
Автор: Eugeny__
Дата: 13.07.10
сравнивает тёплое с мягким, обо что пыщьх
Автор: пыщьх
Дата: 13.07.10
уже намекал.
Если не поможет, будем действовать током... 600 Вольт (C)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.