LINUX.ORG.RU

Производительность Java, C и C++

 , , ,


4

6

Предположим я не тролль, а правда знаю C, C++ и Java.

Java умеет оптимизировать «горячий путь», т.е. в среднем должна быть быстрее на этом пути, чем программы на C или C++. С другой стороны при отклонении от этого «горячего пути» начинаются тормоза.

В большинстве случаев в интерпрайзе(вэб/промышленное ПО) применение java оправдано(там где регулярно выполняется всего 10 основных действий). Т.к. порог вхождения у java ниже - можно найти больше программистов, следовательно дешевле разработка.

Вопрос: чем вызвано массовое увлечение написанием десктопного ПО на java, ведь явного «горячего пути» в десктопных ПО обычно не существует?

ЗЫ программисты на Qt, а не на C++ проходите мимо, вопрос к людям постарше.


Ответ на: комментарий от EXL

Второе легче обработать.

ок, да, это чуть проще, но насколько у десктопного ПО на яве будет ниже количество пользователей из-за тормозов, когда оно съест всю оперативу? меньше пользователей - меньше багрепортов, хоть тресни - меньше полезного фидбека даже от самых преданных пользователей(тупо будут меньше использовать, чтобы фильмец или танки не лагали)

clover
() автор топика
Ответ на: комментарий от clover

когда оно съест всю оперативу?

Если бы RAM сейчас была узким горлышком, никто продуктами JetBrains бы не пользовался. Сегодня в мире средний ноутбук/компьютер имеет 8GB RAM и более, а этого вполне достаточно для запуска какой-нибудь IDEA.

И да, плазма частенько и так съедает всю ОЗУ, а потом падает. А так бы GC вызывался и был бы тупо фриз на полсекунды.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Если бы RAM сейчас была узким горлышком, никто продуктами JetBrains бы не пользовался. Сегодня в мире средний ноутбук/компьютер имеет 8GB RAM и более, а этого вполне достаточно для запуска какой-нибудь IDEA.

ок, ну допустим что пользователь ради мегасупердесктопной программы согласен потратить деньги на ОЗУ и готов страдать от однозадачности своего ноутбука. Но как быть с тормозами? Явный «горячий путь» же отсутствует.

clover
() автор топика
Ответ на: комментарий от clover

И ещё.

Программы на Java имеют очень большую гибкость и функциональность. Сравни Eclipse и KDevelop, CLion и Qt Creator, PyCharm и Eric Python IDE.

Пока C++'ники бегают и отлавливают сегфолты в той функциональности, которую реализовали — Java'ники уже пишут следующую плюшку.

Ну и при работе в каком-нибудь KDevelop или Qt Creator неосторожное или нестандартное движение курсора приводит к моментальному закрытию окна с потерей всех данных и строчкой

segfault at 10 ip 00007f9bebcca90d sp 00007fffb62705f0 error 4

В dmesg. Этим очень часто грешил KDevelop и плагин поддержки Git в Qt Creator. Из-за таких вот проблем даже было придумано насилие винчестера в виде постоянных 10-секундных временных *.swp-копий редактируемых файлов. Ибо никогда не знаешь, в какой момент эта твоя IDE, написанная на C++, грохнется в очередной раз.

Но зато работают они быстро, это да.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Ну и при работе в каком-нибудь KDevelop или Qt Creator неосторожное или нестандартное движение курсора приводит к моментальному закрытию окна с потерей всех данных и строчкой

У меня такая херня в PyDEV еклипсовском все время происходила. На QtCreator ни разу не видел такого.

anonymous
()
Ответ на: комментарий от EXL

Программы на Java имеют очень большую гибкость и функциональность. Сравни Eclipse и KDevelop, CLion и Qt Creator, PyCharm и Eric Python IDE.

Какое-то нечестное сравнение. Не передергивай. CLion и Pycharm разрабатываются крупной IT-компанией, в отличие от KDevelop и Eric Python IDE, которые разрабатываются сообществом в качестве хобби.

Так что тренд не прослеживается. Попробуй еще.

clover
() автор топика
Ответ на: комментарий от clover

Но как быть с тормозами? Явный «горячий путь» же отсутствует.

Смириться с ними, они не настолько фатальные, чтобы обращать на них внимание. Да и под «горячий путь», чтобы JIT делал хорошо, можно кое-что подогнать.

Вон, в MS переписали огромное количество компонентов этой вашей дисяточки на C#. «В приложении Explorer.exe произошла ошибка, отправить отчёт?» теперь перестало напрягать. Стала ли WPF-оболочка Win10 работать тормознее, чем приплюснутая в Win7/WinXP? Я не вижу особой разницы.

Вот и для GNU/Linux программы в существующих DE нужно переписывать на Java или C#.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Смириться с ними, они не настолько фатальные, чтобы обращать на них внимание

пока у тебя одно-два приложения на java, ты с этим живешь. А если все будет на java, уверен, ты первый застрелишься.

Вот и для GNU/Linux программы в существующих DE нужно переписывать на Java или C#.

как хорошо что не ты это решаешь

clover
() автор топика
Ответ на: комментарий от clover

Так что тренд не прослеживается. Попробуй еще.

Так более крупных IDE на C++, чем KDevelop и Qt Creator тупо нет в природе. Не с чем сравнивать. Предложи ты. И да, MS Visual Studio на C# + WPF переписали.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Так более крупных IDE на C++, чем KDevelop и Qt Creator тупо нет в природе. Не с чем сравнивать. Предложи ты. И да, MS Visual Studio на C# + WPF переписали.

речь в целом о десктопе

clover
() автор топика
Ответ на: комментарий от clover

речь в целом о десктопе

Но здесь ты перечислил IDE.

А если все будет на java, уверен, ты первый застрелишься.

Сколько там застрелилось пользователей Android?

Число Android-пользователей достигло 1,4 миллиарда (c)

EXL ★★★★★
()
Ответ на: комментарий от EXL

Сколько там застрелилось пользователей Android?

А что, уже переписали хром на яву? Или как там..., а, «Сервисы google» тоже?

vodz ★★★★★
()
Ответ на: комментарий от EXL

Но здесь ты перечислил IDE.

и не только.

Сколько там застрелилось пользователей Android?

кстати, хороший пример. iOS, не смотря на то что она «нетакаякаквсе», использует нативную компиляцию. Отсюда долгоживущая батарея и высокая скорость работы. Ведроид работает от батареи намного более емкой в разы меньше. ОЗУ на некоторых телефонах требуется больше чем на десктопе. Кошмар совсем, короче. Когда уже Tizen выпустят...

clover
() автор топика
Ответ на: комментарий от vodz

А что, уже переписали хром на яву?

UI там на Java.

https://cs.chromium.org/chromium/src/ui/android/java/src/org/chromium/ui/

А движок, как и в любых ресурсоёмких Android-приложениях на C/C++.

Сказать то что хотел? Большинство Android-приложений не используют нативные SO'шки.

EXL ★★★★★
()
Ответ на: комментарий от clover

Когда уже Tizen выпустят...

Но там упор вообще на HTML5-приложения и Web'ню.

хороший пример. iOS, не смотря на то что она «нетакаякаквсе», использует нативную компиляцию.

Да. Вот только несмотря на всех их возможности по оптимизации в айфонах до сих пор ужаснейшие дисплеи. А современные Android'ы уже давно жуют 2К и 4К.

EXL ★★★★★
()
Ответ на: комментарий от vodz

А что, уже переписали хром на яву? Или как там..., а, «Сервисы google» тоже?

Сервисы гугл переписывали одно время (клиентскую часть) - называлось это поделие GWT, потом его бросили в пользу AngularJS, который во второй версии переписали на Typescript. Работает это всё в любом случае на рантайме, написанном на C++ (v8 называется), как и QML-интерфейсы Qt. Так что здесь всё более-менее одинаково.

asaw ★★★★★
()
Ответ на: комментарий от EXL

UI там на Java.

это говно на Java умеет зависать на сетевых операциях, в метро особенно заметно.

еще очень гениальное решение - когда не докачался какой-нибудь мелкий файлик или хвост страницы но сама она уже показывается и работает сбрасываться надо обязательно показать что «произошла ошибка» и хрен вы у нас что-то прочитаете.

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

потому что

Пока C++'ники бегают и отлавливают сегфолты в той функциональности, которую реализовали — Java'ники уже пишут следующую плюшку.

потому что Javaшники рукожопые идиоты с плюшками

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

Это просто пример того, что Android двигает и развивает мобильную индустрию (в том числе и своей ресурсоёмкостью), а iOS — нет.

EXL ★★★★★
()
Ответ на: комментарий от ckotinko

потому что Javaшники рукожопые идиоты с плюшками

но ведь мерило успеха - это жизнь. андроид - живее всех живых в отличие от meego, maemo и sailfish - где они все?.
пока джависты просто делают свою работу и облегчают жизнь людям вместе с парнями на JS, парни C/C++ пилят всякую хрень, которая и так хорошо работает. А чтобы не чувствовать себя неполноценными из-за того что никие их поделия не могут даже в прод выйти, называют всех остальных рукожопами. Молодцы, чё

rusich
()
Ответ на: комментарий от rusich

sailfish - где они все?.

Я тут недавно слышал, что это «отечественная» (с) «российская» ось для «защищенных» «сверхнадежных» смартфонов

anonymous
()
Ответ на: комментарий от EXL

Да. Вот только несмотря на всех их возможности по оптимизации в айфонах до сих пор ужаснейшие дисплеи. А современные Android'ы уже давно жуют 2К и 4К.

тормоза в HD, ох.енно

clover
() автор топика
Ответ на: комментарий от anonymous

хрен угадал. 6 еле до вечера дотягивает

ведроид при тех же характеристиках аккума и железа не дотянул бы и до обеда

clover
() автор топика
Ответ на: комментарий от EXL

Сказать то что хотел? Большинство Android-приложений не используют нативные SO'шки.

Это я и сказал, как только выходим за границы пищалок/перделок, так ява заменяется C++/C

vodz ★★★★★
()
Ответ на: комментарий от anonymous

Я тут недавно слышал, что это «отечественная» (с) «российская» ось для «защищенных» «сверхнадежных» смартфонов

попилят баблишко, выпустят пару прототипов и остануться на iphon'ах. можно подумать первый раз

rusich
()
Ответ на: комментарий от vodz

так ява заменяется C++/C

Но не полностью ;) Ибо GUI в Android предпочитают писать именно на Java, а вот ядро/движок да хоть на Lisp'е.

EXL ★★★★★
()
Ответ на: комментарий от EXL

как ты политкорректно назвал торможение «ресурсоемкостью».

у мну вот телефон какой-то голимый, проц там наверно 500 мегагерц или 600. удар об асфальт держит, мне и хватает.

Но вот чего я не пойму. Вот когда-то у меня был пентиум-166-MMX с 16мб EDO-памяти. И на нем более сложные интерфейсы у программ работали довольно быстро в сравнении с тем как осатанело тупит «двигатель мобильной индустрии». А ведь и памяти больше, и мегагерц там раза в 3 или 4 больше, и графика-то ведь новомодная «плиточная» по сути везде, с однотонным окрашиванием.

что там может быть ресурсоёмко-то? чего тупит-то эта жаба так?

ckotinko ☆☆☆
()
Ответ на: комментарий от rusich

ты хотел сказать «google», но запутался в буквах и получилось «java».

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

у мну вот телефон какой-то голимый, проц там наверно 500 мегагерц или 600

А вот у меня был Motorola ZN5 на расово чистом GNU/Linux, его характеристики были таковы: 532 MHz Freescale SCMA-11 CPU @ 128 MB RAM @ 320x240. Интерфейс телефона и внутренние программы работали на Qt 2. Всё это тормозило очень сильно, а после того, как я перешёл на Android со схожими характеристиками: 550 MHz TI OMAP3430 @ 256 MB RAM @ 854x480 очень удивился тому, что телефон c GUI и программами на Java просто летал.

чего тупит-то эта жаба так?

Так что далеко не в жабе дело.

нем более сложные интерфейсы у программ работали довольно быстро в сравнении

Да где они там были сложные? Дай хоть одну программу для P-I/P-II, с интерфейсом, который по функциональности настолько же богат и сложен как, например, интерфейс IDEA, Eclipse или NetBeans. Разве что про MSVS6 можно такое сказать, но там интерфейс гораздо-гораздо проще.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Как многолетний пользователь KDE не устаю потешаться над вашими «плазма частенько и так съедает всю ОЗУ, а потом падает» и прочими высказываниями.

flyshoot
()
Ответ на: комментарий от EXL

Собственно, я не один год сидел на 3.5, и плазма у меня падала, да, но стабильные версии KDE всегда нормально работали, кст. тут ещё много от дистра зависит.

flyshoot
()
Ответ на: комментарий от ckotinko

Во! Спасибо, что напомнил. Действительно, если бы на ZN5 или в Droid 1 были иксы, то тормозило бы всё ещё больше, как на N900 или N9:

https://www.youtube.com/watch?v=L1--OW4j0Pw

Кстати, JVM на Motorola ZN5 была отличная — ещё Sun'овский kvm оптимизированный под технологию Jazelle. Так что J2ME-приложения, даже с 3D, на ней летали.

А вообще не мешай мне мазать жиром кормить анонiмуса >:)

EXL ★★★★★
()
Ответ на: комментарий от EXL

Пока C++'ники бегают и отлавливают сегфолты в той функциональности, которую реализовали

Java'ники уже ломают ранее сделаные плюшки

Починил (эклипц яркий пример)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от EXL

Можно подумать, что у Java программ нет необходимости сохранять данные время от времени. Один сбой питания или поломка железа и всё, труба.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Сбои питания решаются через ИБП. Но и всё же, сегфолты в программах на C++ всё же более частое явление, не правда ли?

EXL ★★★★★
()
Ответ на: комментарий от EXL

Но и всё же, сегфолты в программах на C++ всё же более частое явление, не правда ли?

кстати, про «я уже не помню когда последний раз ...»
...видел сегфолт

anTaRes ★★★★
()
Ответ на: комментарий от EXL

И да, MS Visual Studio на C# + WPF переписали.

А вот почему он стал жутким тормозом.

neon1ks ★★
()
Ответ на: комментарий от EXL

И да, MS Visual Studio на C# + WPF переписали.

ууу, тогда это лучше сразу закопать. оно и раньше было корявым. а теперь, значит, оно ещё и тормозное. как же хорошо, что у меня маздая нет!

Iron_Bug ★★★★★
()
Ответ на: комментарий от EXL

Вот и для GNU/Linux программы в существующих DE нужно переписывать на Java или C#.

Как хорошо, что этого никогда не будет.

th3m3 ★★★★★
()
Ответ на: комментарий от th3m3

Не зарекайся.

Red Hat (который активно работает в т. ч. и над Java/JVM) сделает какую-нибудь принципиально новую DE для современных компьютеров и уже завтра Canonical Ltd. начнёт брать оттуда наработки (как они делают сейчас с GNOME 3), послезавтра какой-нибудь Debian сделает это «принципиально новое DE» дефолтным (как это получилось с GNOME 3), а «через неделю» будет такая картина:

http://esxi.z-lab.me:666/~exl_lab/screens/systemdwins.png

EXL ★★★★★
()
Ответ на: комментарий от EXL

Вот и для GNU/Linux программы в существующих DE нужно переписывать на HTML5/CSS/JavaScript, конечно.

boo32
()
Ответ на: комментарий от EXL

Вон, в MS переписали огромное количество компонентов этой вашей дисяточки на C#

Есть информация, что именно там на C# переписано? Как-то стало интересно, а ничего нарыть не могу, винда такая винда. Или ты просто вангуешь?

curufinwe ★★★★★
()
Ответ на: комментарий от curufinwe

Ну вот, например, Visual Studio давно уже переписали на C#:

https://www.quora.com/As-of-2015-how-much-of-Microsoft-Visual-Studio-is-writt...

Новый диспетчер задач, новый Explorer.EXE, оболочка браузера EDGE и куча другого винософта имеет в зависимостях библиотеки .NET.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Новый диспетчер задач, новый Explorer.EXE, оболочка браузера EDGE и куча другого винософта имеет в зависимостях библиотеки .NET.

Так они действительно написаны под .NET, или просто имеют биндинги к .NET?

curufinwe ★★★★★
()
Ответ на: комментарий от curufinwe

Так они действительно написаны под .NET, или просто имеют биндинги к .NET?

Вот когда мне нужно будет залезть в дисяточку максимальную по работе, я посмотрю что там и как и кастану тебя.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Вот есть такая программа McIDAS. Служит для обработки, визуализации всяких метео,гео-данных. Она реализована в двух вариантах, на Java и Си. Один из вариантов - экспериментальный опенсорсный, другой (закрытый) используется в серьезной работе(типа энтерпрайз). Можно сразу догадаться, какой где... Хотя я не спорю, виртуальная машина - это очень полезно для надежности.

anonymous
()
Ответ на: комментарий от peregrine

У меня кот с неделю назад упал с системного блока и выдернул провод из корпуса. ИБП тут не поможет.

Термоклей поможет.

BitSum ★★
()
Ответ на: комментарий от BitSum

Термоклей поможет.

Суровые у вас способы воспитания котов..

grossws
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.