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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> exe: Java и C++ 
:(
    Опции темы
Амортизатор
Дата 20.5.2006, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Интересно узнать о том, насколько исполняемый exe, полученный компиляцией программы на java под конкретную платформу (Windows), уступает C++. Интересуют основные характеристики - скорость исполнения (то бишь качество оптимизации) и размер исполняемого exe (со всеми подключаемыми модулями разумеется).

Внимание - тема продублирована в разделе "C++ - общие вопросы" с целью узнать мнения обеих сторон. Просьба не переносить данную тему в "Священные войны" или куда еще, поскольку ставится конкрентный вопрос, на который требуется конкретный ответ, не более того. 


--------------------
Поехали!
PM MAIL   Вверх
LSD
Дата 21.5.2006, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Пазмер естественно будет больше, все таки надо JRE включать. Скорость будет хуже чем у чистой JRE, хотя тут возможны варианты.


Цитата(Амортизатор @  21.5.2006,  00:25 Найти цитируемый пост)
Внимание - тема продублирована в разделе "C++ - общие вопросы" с целью узнать мнения обеих сторон.

Интерестно откуда сишники могут знать, как ведет себя Java приложение скомпилированное в native код. 


--------------------
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   Вверх
ALKS
Дата 21.5.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



так ведь JRE включают в экзешник редко(кому нужны экзешники такого размера?) как правило экзешник это просто загрузчик в несколько сотен килов, который делает какой-то минимум работы и стартует програмку вместе с JRE уже установленным на машине. 

во-вторых (с включенной JRE или нет )это не компеляция под конкретную платформу... компеляция это нечто иное... я знаю тока что Excelsior JET такое может с Java делать, но я  лично никогда не пробовал. 
PM   Вверх
LSD
Дата 21.5.2006, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Во первых еще например GCJ может такое делать. И еще парочка утилит была, но сейчас уже не вспомню.
Во вторых, при таком подходе именно что приходится включать JRE в комплект, или в exe-шник, или в виду dll-ей. 


--------------------
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   Вверх
ALKS
Дата 21.5.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



собственно не важно. важно то что сравнивать такой Java EXE с откомпелированным C собственно совсем не корректно. 
PM   Вверх
LSD
Дата 21.5.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(ALKS @  21.5.2006,  14:02 Найти цитируемый пост)
важно то что сравнивать такой Java EXE с откомпелированным C собственно совсем не корректно.

Почему?

По моему вполне нормально. Например хочется человеку оценить, что приобретаешь переходя на 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   Вверх
powerOn
Дата 21.5.2006, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

Репутация: 47
Всего: 159



Вот есть exe написанный на С++. Он тягает функции операционной системы (например GDI) для прорисовки своего графического интерфейса. А  GDI тоже где-нибудь надо  взять, и ведь это никто не учитывает! Считают, что user32.dll есть в каждой Windows системе и транспортировать его с прогой не надо. И так, кстати, со многими функциями - необходимые библиотеки уже есть в системе и нет необходимости их транспортировать вместе с программой. Получается, что размер инсталятора C++ проги не большой.

Java работает в своем окружении, и использует к примеру Swing, которое также придется компилировать в библиотеки. Но этих библиотек, естественно нет на целевой машине. И их приходится включать в инсталятор. От сюда его не хилые размеры. 

На самом деле разницы не много. И будь Java окружение уже становлено на целевой машине, то еще не известно чей exe больше будет.

Так что давайте учитывать все зависимости, либо не учитывать их вообще.  

  

Это сообщение отредактировал(а) MoonCat - 21.5.2006, 19:30


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Амортизатор
Дата 21.5.2006, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(MoonCat @  21.5.2006,  19:29 Найти цитируемый пост)
Так что давайте учитывать все зависимости, либо не учитывать их вообще. 


MoonCat, я полагаю, нужно учитывать то, что имеет место быть в сегодняшной Windows. Да, любое Windows-приложение использует кучу api-функций, которые поставляются вместе с Windows в качестве прикладного программного инструментария, и размер внешних библиотек зачастую бывает больше собственного кода программы. Однако этот факт как раз является преимуществом использования С++, так как я сравниваю не 2 технологии как таковые (C++ vs Java), а реальные преимущества каждой из них на конкретной платформе. 


--------------------
Поехали!
PM MAIL   Вверх
ALKS
Дата 21.5.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



C++ и Java это не технологии это языки программирования. и сравнивать их реальные приимущества путем сравнения EXE файлов... как минимум странно. 
PM   Вверх
Амортизатор
Дата 21.5.2006, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ALKS, согласен, что понятие "технология" в отношении С++ не совсем применимое, хотя вопрос спорный, но Java - в первую очередь именно ТЕХНОЛОГИЯ, и лишь потом язык, который просто входит в состав технологии. 


--------------------
Поехали!
PM MAIL   Вверх
LSD
Дата 21.5.2006, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



MoonCat, да программа на С++ использует системные функции, но:
1. user32.dll - действительно есть в каждой Windows системе и транспортировать его с прогой не надо
2. сама JVM использует user32.dll и кучу других API (даже DirectDraw)
3. у Java есть еще нехилый рантайм не связанный с внешними взаимодействиями, в частности сборщик мусора, рефлексия и т.д.

А вообще по мне, компилить Java приложения в native код, надо в очень ограниченом количестве случаев. А так просто использовать инсталятор, который ставит вместе с приложением JRE. 


--------------------
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   Вверх
powerOn
Дата 22.5.2006, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

Репутация: 47
Всего: 159



LSD, Я веду к тому, что для С++ Windows система почти как родная. Все под рукой. А для Java - нет.  Поэтому приходится распространять Java программы либо в byte-code с JRE, либо в скомпилированном виде с JRE. Что сильно раздувает дистрибутив.

При этом подобной ситуацией обладает лишь Windows  smile , остальные же ОС (Linux, Solaris (про Мак не знаю)) сразу же имеют установленную  JRE как минимум.,что позволяет транспортировать Java программу без лишнего багажа.  

На мой взгляд, нет смысла компилить Java программу в нативный код. По скорости выигрыш не значительный и теряется переносимость. Докучи размер дистриба, без установленного скомпилированного JRE. разростается как на дрожжах.

 


--------------------
user posted image нет времени думать - нужно писать КОД!

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

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

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


 




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


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

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