LINUX.ORG.RU

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

 , , ,


4

6

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

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

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

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

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


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

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

UI там на Java.

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

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

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

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

с позиции бизнеса мне вобщем-то это понятно, хотя иногда компании все-таки планируют дальше послезавтра и выбирают хорошие инструменты, с позиции opensource-сообщества - не очень

ну я вот джавист и я бы точно не стал реализовывать свою задумку на C/C++, просто потому что я их не знаю в достаточной степени. вот и ответ на твой вопрос

rusich
()
Ответ на: комментарий от 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 ☆☆☆
()
Ответ на: комментарий от joy4eg

Ой, я тебя умоляю. Сейчас Plasma Shell и GNOME Shell на JavaScript'ах. И написанный на C++ там только движок.

Если бы переписали на Java было бы гораздо шустрее той вебни, которая есть сейчас.

Тем более, подобные проекты на Java уже давно были:

http://sillydog.org/forum/-news-project-looking-glass-making-linux-3d-t5191s1...

https://youtu.be/EjQ4Nza34ak

Но мир к ним оказался не готов. Хотя они давали на клык всяким этим Beryl и Compiz.

Так что по сути Java DE завезли лишь в Android.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от 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 ☆☆☆
()
Ответ на: комментарий от RazrFalcon

Альтернативой C++ он быть не может, ибо является надстройкой над ним.

просил же проходить мимо. обычная библиотека надстройкой, ага.

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

У меня на компьютере и Java есть, и JavaScript, и еще много чего. Но только я на них не программирую.

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

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

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

Если бы Qt был «чистым» C++-фреймворком, то код не moc'ался бы перед компиляцией программы.

Вот когда отпилят moc (Qt 6), тогда даже с точки зрения буквоеда-зануды будет всё красиво.

А то так и Vala можно назвать C-фреймворком.

EXL ★★★★★
()

ведь явного «горячего пути» в десктопных ПО обычно не существует?

Еще как существует. JIT показал свою эффективность в клиентском коде, например во flash и javascript.

maxcom ★★★★★
()

А ведь наверняка были подобные срачи между, скажем, ASM-ерами и C-шниками
Типо: «Чо это за хрень, где не понятно что соберется на виходе, и весь этот крап потом тупо не влезет в память», «памяти не напасешся», «жырноСи» ...

В моей воображаемой параллельной вселенной ASM-еры победили, и мы все живем счастливо, пишем все на ASM-е и все у нас летает на 1М оперативки и процы не греются ...

но нет, прогресс сцуко

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

man MOC

ты-то не читал судя по всему

давай еще cppcheck, визардов из IDE и astyle к надстройкам отнесем

короче, язабан

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

JIT показал свою эффективность

по сравнению с чем? просто в гугле не знают про это, перешли на AOT.

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

ну вообще, Qt при компиляции своего кода дописывает. простым gcc ты qtшный код не соберешь.

ага, как же. обычный генератор кода, и собирается он простым gcc после того как генерация завершена.

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

не, погоди, ты сейчас нам рассказывал про «обычная библиотека».

а тут уже генератор кода. нука давай развей свою мысль. что там за обычный генератор кода.

ckotinko ☆☆☆
()

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

Сам придумал, сам спросил? Где ты увидел массовое увлечение десктопным ПО на Java? Я кроме специализированных программ для разработчиков вообще такого не видел.

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

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

ахаха) для тебя кодогенерация - это диковинка?)

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

Я кроме специализированных программ для разработчиков вообще такого не видел.

ну вот FreeCol - вполне себе игра на java

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

ты давай не виляй. сначала у нас была «обычная библиотека». потом появился «обычный кодогенератор». щас еще что нибудь обычное появится.

давай говори,

а)этот кусок кода компилятором С++ скомпилится?

б)он где-то ошибочен?

class X : public QObject {
   Q_OBJECT

public: 
   X() {}
signals:
   void foo();
};
ckotinko ☆☆☆
()
Ответ на: комментарий от clover

ну вот FreeCol - вполне себе игра на java

Вот только до FreeCiv на C и FreeOrion на C++ ей очень далеко.

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

ты давай не виляй.
давай говори,

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

clover
() автор топика
Ответ на: комментарий от 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 ★★★★★
()
Ответ на: комментарий от clover

Чёт ничего кроме IDE из этого списка не знаю, ещё примеры есть?

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

Это потому что он на C++. В идеальном мире JVM написана тоже на Java и называется Maxine VM.

реально страшно стало от такого идеального мира)

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

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

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

А опенсурс что, разрабатывают студенты на коленке за идею, а не дяди за зарплату?
Даже если бы это было так, стоимость разработки — это прежде всего затраченное время.

mersinvald ★★★★★
()

чем вызвано массовое увлечение написанием десктопного ПО на java

Твоей бурной фантазией.

Bfgeshka ★★★★★
()

Вопрос: чем вызваны галлюцинации о массовом увлечении написанием десктопного ПО на java.

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