LINUX.ORG.RU

Было бы классно, если бы SUN еще разработала бы так называемые native compiler для Java!

Можно было бы иметь и байт-код (для переносимости), и executable.



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

А почему это должен быть именно Sun? gcj, конечно, пока слабоват, но, в принципе, как-то вопрос решается. kagan

anonymous
()

как правило вопросы скорости решают пересмотром кода, применением оптимизации и возможно апгрейдом железа. Что бы SUN выпустила подобный native компилятор? да никогда!

cyberian
()

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

Полуденный Бес

anonymous
()

Хи-хи...

>вопросы скорости решают пересмотром кода,
>применением оптимизации и возможно апгрейдом
>железа.

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

lowry
()

Погоняйте арифметику на Java, да? Примитивный тест на десять миллиардов операций умножения и сложения. Найти время, за которое этот цикл пройдет. Сравнить с аналогичным кодом на C. Что может быть проще?

CybOrc
()
Ответ на: Хи-хи... от lowry

Неправда. Пересмотр и оптимизация кода - дело важное. Оптимизировать можно сетевые протоколы (которые очень даже пишут на жабе), state-machines, parsers, compilers, DOM etc. И даже GUI. Много сложных жабских проектов (см. в инете) борются за скорость (пример про GUI - jEdit, NetBeans, ...).

Это я вам как Brainbench MVP for Java 1 говорю:)))

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

2svu:

> ...Много сложных жабских проектов (см. в инете) борются за скорость (пример про GUI - jEdit, NetBeans, ...).

Из последнего, с чем сталкивался, очень приятное впечатление скоростью GUI (и не только) произвела среда разработки IntelliJ IDEA 2.5 (http://www.intellij.com), к сожалению не фришная... А вообще в версии J2SDK 1.4 скорость 2D-графики подтянули, а все остальное в Java давно на уровне.

> Это я вам как Brainbench MVP for Java 1 говорю:)))

Присоединяюсь как Sun Certified Programmer for Java[tm] 2 Platform :)))

thread
() автор топика

Ivory says: Сложных алгорит- мов на жабе не часто пишут, а интерфейсы и обработку данных из БД оптимизировать сложно...

гм.. А эмулятор спектрума на Java - Jasper? Ссылку лень искать, но на любых спекоских сайтах -на ура

anonymous
()

кому не нравится не пишите на Java у Java есть множество приемуществ например давайте раскажиет мне о технологии подобной J2EE (я о всем EJB , JMS ......) и что бы это было переносимо с одной платформы на другую ?

ROMUL
()

А говорят "ИЛ-2 Штурмовик" большей частью написан на java?!

anonymous
()

>А говорят "ИЛ-2 Штурмовик" большей частью написан на java?! "Говорят, шпиёны воду отравили самогоном, ну а хлеб теперь из рыбной чешуи" (с) В.С. Высоцкий.

anonymous
()

>А говорят "ИЛ-2 Штурмовик" большей частью написан на java?!

"Говорят, шпиёны воду отравили самогоном, ну а хлеб теперь из рыбной чешуи" (с) В.С. Высоцкий.

anonymous
()

2anonymous (*) (2002-01-23 21:08:14.0) "гм.. А эмулятор спектрума на Java - Jasper?" - Во. Еще одного уродца вспомнили. Никак, бедный, не может нормально на скорость нормальную настроиться. ~200% и не меньше, хоть тресни. Я уж молчу про то, что звука нэт и все остальное. У.Б.О.Ж.И.Щ.Е.

lenin
()

2 CybOrc

А о чем такой тест будет свидетельствовать? О том, что ява медленнее С? Это не новость. И возможностей явы как языка прикладного программирования это не умаляет.

Полуденный Бес

anonymous
()

Жаба - сосёт.

Это я говорю вам, как пишущий на жабе и сях.

anonymous
()

Бес, а бес... Ты этот примитивненький. но показательный тест не провел. :) Иначе бы понял, что я хочу сказать. :)

CybOrc
()

2Полуденный Бес >>>> А о чем такой тест будет свидетельствовать? О том, что ява медленнее С? Это не новость. И возможностей явы как языка прикладного программирования это не умаляет. >>>> Ну насчет языка прикладного программирования это слишком круто сказано. Мне кажется такой язык должен быть простым,чего не скжешь о яве. Ибо по сложности ява чуть проще чем С++, а это вроде называют языками третьего поколения. Мое отношение к ява - это просто модный и хорошо раскрученый язык. Его бесспорное достоинство - это то что он слегка "размочил" монополию разработки компонентов от MS. На этом сообственно все. Остальное умеют или умели делать другие языки и тоже кроссплатформенные. А вот финансовых вливаний в аппаратную платформу использование Явы требует однозначно. ( И не говорите мне что память дешевая )

СтранниК

anonymous
()

2 CybOrc

Нет, не провел. Но какую мораль-то ты видишь?

Полуденный Бес

anonymous
()

Java рулит. Память и вправду дешевая.
Да явя медленнее С и С++, но зато я пишу программу и мне пофиг, под чем ее писать и под чем она будет работать. И не надо ее перекомпиллировать под каждую платформу.
За удобство надо платить, в данном случае расплачиваются мощным железом.

Lucifer
()

2 СтранниК

Я считаю самым сложным языком, с которым мне приходилось столкнуться - Progress (ver 8.2 A). 4GL - исключительно прикладного назначения язык. Количество служебных слов превосходит все мыслимое, - на сотни счет идет. А в чем сложность явы? Много проще С++. Несомненно, то, что он размочил Visual C, - это достоинство, но стратегического порядка. У него много других достоинств, связанных с самим языком и его реализацией.
Насчет вливаний в железо(я так понял, что для работы ява-приложений, а не в Java-процессор?). У меня 256M RAM, не много для нынешнего дня. ОС Win 2000. Работают - Tomcat 3.3 - 2 шт, Forte 3 for Java - 1 шт, IIS - 1 шт. Аутлуки, эксплореры, файл браузеры - не считаю. Свопа нет. Дома RH7.2 PII 200 64M RAM, там да, Forte уже запускать смысла нет. Но нельзя же ориентироваться на эту конфигурацию?

Полуденный Бес

anonymous
()

> Нет, не провел. Но какую мораль-то ты видишь?

Мораль в том, что на таких задачах скорость на нормальной JVM от С будет отличаться всего на 10%, может 20.

В жабе гуи притормаживают, да и new не стоит сильно увлекаться.
Я как-то писал прогу, которая интенсивно шарилась по сети, парсила инфу и складывала в базу.
На фре с jdk 1.1.8 прога ела 20% процессора, MySQL - 50%

Havoc ★★★★
()

2 Havoc

Конечно, на яве писать надо со вниманием, с повторным использованием объектов, крепко подумав, нужен ли Vector или ArrayList(разница в примитивных тестах этак до 40%), избегать лишних перераспределений памяти и т.д и т.п.
Недовольство вызывает, наверное, то, что на С/С++ можно писать практически всегда "от вольного" и практически всегда получишь удовлетворительный по ресурсам результат, а на яве этого добиться труднее, мозгой больше шевелить надо над оптимизаций кода, а не только алгоритма.


Полуденный Бес

anonymous
()

Я тоже пишу проги на Яве и как бы мне хотелось native compiler - то есть я хотел бы иметь язык, такой же простой как Ява (точнее с синтаксисом и библиотеками Ява) и которая могла бы компиляться в executable файл.

Ну как Си, например - можно писать на Си под что угодно - под Линукс, под Виндоуз,..

coder
()

2 coder

Дело в том, что на С ты пишешь или под Windows, или под Linux. А на яве ты пишешь всегда под JVM.

Полуденный Бес

anonymous
()

2Полуденный Бес. Дело в том, что на C ты пишешь _не_всегда_ под Windows, или под Linux. Есть большой круг задач, когда хватает стандартных библиотек или тех которые на них основанны, плюс, возможно, либы доступа к ДБ и т.д. Если ужо нужно интерфейс, то и морду можно взять интернациональную (хоть TK на первой). Так что если писать с осознанием необходимости крос-платформенности, то на C можно делать достаточно спокойно (все зависит от специфики приложения).

Korwin ★★★
()

2 Korwin

Спокойствие в кроссплатформенности на С обеспечивается либо "оборачиванием" системных вызовов, либо дерективами условной компиляции, что, вообще говоря, то же "оборачивание". И в том и в другом случае ты выполняешь часть работы дважды.
Возможно, в самых тривиальных случаях, и можно обойтись printf и т.д., но что-то я с трудом представляю такое приложение(не про "Hellow World" же мы говорим?). А как только появляются потоки - все, никакими стандартными библиотеками не обойтись.

Полуденный Бес

anonymous
()

2 Полуденный Бес

Ну я о том же: хочу писать на Java-like языке либо под Windows, либо под Linux + библиотеки Java-like!

Под Windows это проблема по моему решается - C#
А вот под Линукс не знаю пока...

coder
()

2Полуденный Бес

Спокойствие в кроссплатформенности на С обеспечивается либо "оборачиванием" системных вызовов, либо дерективами условной компиляции, что, вообще говоря, то же "оборачивание". И в том и в другом случае ты выполняешь часть работы дважды. Возможно, в самых тривиальных случаях, и можно обойтись printf и т.д., но что-то я с трудом представляю такое приложение(не про "Hellow World" же мы говорим?). А как только появляются потоки - все, никакими стандартными библиотеками не обойтись. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>

А JVM случайно не является такой же оберткой к системным библиотекам? Как и любой интерпретатор? Например тот же Python. Насчет быстродействия: Где-то в доке по JAVA проскакивало, что если ваше приложениет требует повышеной производительности используйте naitive методы ( проще говоря вызов С-функций )

>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >

Насчет вливаний в железо(я так понял, что для работы ява-приложений, а не в Java-процессор?). У меня 256M RAM, не много для нынешнего дня. ОС Win 2000. Работают - Tomcat 3.3 - 2 шт, Forte 3 for Java - 1 шт, IIS - 1 шт. Аутлуки, эксплореры, файл браузеры - не считаю. Свопа нет. Дома RH7.2 PII 200 64M RAM, там да, Forte уже запускать смысла нет. Но нельзя же ориентироваться на эту конфигурацию? >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>

Все это вы красиво говорите, но вот когда доходит дело до эксплуатации приложений то мне по вашемо на 200 пользователей сколько памяти надо ? 256*200 = 51200 Мб( конечно это утрировано, но суть понятно). Не слабо да? Так вот еще раз про дешевую память. Server-side приложения требуют много памяти и процессоров,а следовательно это уже серверы SUN, Alpha и т.д. А кто знает сколько модулек 256Mb дополнительно купить для Sun или Alpha стоит? А сколько стоит процессор добавить ? То-то и оно что мы сначала софт пишем а потом "бабки" считаем. У нас используется Oracle application server (тот который на базе апача ), Так пока Java не отключили система ели дергалась, а после отключения все стало на свои места. Сервер достаточно не слабый 2 Xeon-а( 1Ghz) - 2Gb памяти. Вот такая вот музыка.

СтранниК

anonymous
()

2 СтранниК

Ну, с некоторой натяжкой можно сказать, что - да, является оберткой. Но ведь, я-то об этом не знаю и знать не хочу. От меня все скрыто. И системные вызовы, и работа с потоками. Никаких #IFDEF'ов. Это же благо для кроссплатформенной разработки - не думать, как и что от тебя скрыто. И ява это делает и делает хорошо.
А под повышенной производительностью что надо понимать? Я же не предлагаю писать на яве СУБД или драйверы? В таком софте - да, нужны будут вызовы натурально скомпилированных библиотек. Но само написание такого софта на яве - уже ошибка.

"...200 пользователей сколько памяти надо... ?" - совершенно непонятно, - откуда такая калькуляция? Почему 200x256M? С чего вдруг?

Полуденный Бес

anonymous
()

2Полуденный Бес.

Я намекал на CGI и другие сервер-сайд приложения + чисто расчетные задачи или обработка текстовых массивов. Для этих целей у C есть и кросс-платформенность и скорость.

Korwin ★★★
()

2 Korwin

Конечно существуют задачи, где для обеспечения преносимости на уровне исходного текста требуются какие-то мизерные телодвижения. Но число их невелико.

Но вот у меня совершеннейший сервер-сайд, потоков хренова туча, заранее даже сказать нельзя - сколько их будет. И как мне это портить? Писать wrapper'ы для общения с потоками?

Есть еще одно преимущество явы, о котором так давно говорили Питеры Нортоны, - отсутствие работы с памятью напрямую. Это значительно снижает цену ошибки. Пример - extended stored procedure. Если падает С'шная, то она может всю СУДБ с собой прихватить, если явская - то и хрен с ней - рукой можно помахать. Пустячок, а приятно.

Полуденный Бес

anonymous
()

2Полуденный Бес. <<<< "...200 пользователей сколько памяти надо... ?" - совершенно непонятно, - откуда такая калькуляция? Почему 200x256M? С чего вдруг? >>>>

Это конечно сказано утрировано. Но если точно то можно суда глянуть http://technet.oracle.com/docs/products/ias/pdf/http_perf_guide_linux1022.pdf Страница 41. Думаю там вполне хорошо написано. Я просто подвожу к мысли, что такое же приложение написанное на другом языке( не обязательно на С, это может быть и Perl,и Python,и так далее) будет потреблять меньше памяти,следовательно возможно обслуживать больше пользователей на той же самой аппаратной конфигурации хоста.

СтранниК

anonymous
()

2 СтранниК

Ну конечно же это не так. То есть, в каком-то частном случае это может оказаться верным, но в общем - нет.
Если пишется сервер, то количество ресурсов, которое он затрачивает для работы с одним соединением совершенно не зависит от средства, с помощью которого этот сервер реализован. Ну это же очевидно!
Оракловые буквари говорят, что на одного клиента Оракл тратит от 1.5М до 4М памяти(ничего себе - разброс данных для оценки, правда?). Это же не значит, что ЛЮБОЕ серверное приложение, написанное на С, будет затрачивать такие же средства на работу с соединением?

Полуденный Бес

anonymous
()

2Полуденный Бес >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Ну конечно же это не так. То есть, в каком-то частном случае это может оказаться верным, но в общем - нет. Если пишется сервер, то количество ресурсов, которое он затрачивает для работы с одним соединением совершенно не зависит от средства, с помощью которого этот сервер реализован. Ну это же очевидно! Оракловые буквари говорят, что на одного клиента Оракл тратит от 1.5М до 4М памяти(ничего себе - разброс данных для оценки, правда?). Это же не значит, что ЛЮБОЕ серверное приложение, написанное на С, будет затрачивать такие же средства на работу с соединением? >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>

Ну если все так,как вы говорите у меня сервер приложений с влюченной явой просто должен летать. Однако у меня миражи и средняя загрузка OC в 5 ед. , а после отключения JAVA модулей 0.5 .

СтранниК

anonymous
()

И еще пять копеек в копилку Java -- на этом языке проект можно сделать намного быстрее чем на C/C++ -- в этом немалое преимущество языка.

Просто прохожий.

anonymous
()

2Странник: >Все это вы красиво говорите, но вот когда доходит дело до >эксплуатации приложений то мне по вашемо на 200 пользователей сколько >памяти надо ? 256*200 = 51200 Мб( конечно это утрировано, но суть >понятно). Не слабо да?
такие мысли уважаемый говорят о том что вы слабо разбираетесь в
вопросе - почитайте умные книги про устройство современных OC и организацию работы процессов в памяти.
Пример! Игровой сайт(название не привожу дабы не выглядело рекламой).
2-ух процессорная тачка, 512m, FreeBSD, Java 1.1.8. Работают несколько десятков java процессов(сервера для каждой из игр) которые легко держат нагрузку 300-400 человек в online, при этом же на машине еще крутится Apache в связке с Tomcat, CPU нагрузка дай бог 20%. При этом заметьте софт весь этот free, что само по себе уже большой плюс!

cyberian
()

Попробую "встрять" с другого бока ...

Господа ! А вот если брать server-side java (JSP или типа того, я в java не спец) в сравнении с php ? При этом речь идет о разработках сайтов среднего и крупного масштаба - большие корпоративные сайты (но поменьше M$ и RH), информационные порталы, типа www.e1.ru, то как бы тут сравнить - что лучше ?
Лично я вот уже не один год работаю на php и в принципе доволен, но чем крупнее разработка, тем больше вокруг нее появляется дополнительных задач, для котороых php мягко говоря не приспособлен. Поначалу я писал на php как на shell, теперь вот думаю уже перейти на C для этих дел. Но с другой стороны есть java, на которой тоже все это можно делать (и сайты и серверные дела) ...
Есть советы/идеи/пожелания ?

Anton_Khalikov
()

Еще пример - обработка шаблонов. Как это на php варится - я в курсе, а что на эту тему java умеет ?

Anton_Khalikov
()

>Еще пример - обработка шаблонов. Как это на php варится - я в курсе, а что на эту тему java умеет ?

А JSP для чего придумали? или что ты понимаешь под шаблонами?

anonymous
()

IMHO, Java сервлеты и JSP самое лучшее решение для server-side programming.

2 Anton_Khalikov >
Прочитай про JSP (да и вообще про технологию Java Servlets & JSP) - Думаю тебе понравится :)

PS. Все равно хочу язык с синтаксисом и возможностями Java, и главное, чтобы он компилялся в native код - Вот такой я вредный :)

А вообще сделали бы так, чтобы мона было бы скомпилять и байт-код и native executable: хочу кросс-платформенности - компиляю в байт-код, хочу на какую-нить платформу онли - компиляю в native exe.

Вот...

Rgrds!

coder
()

2cyberian >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> Пример! Игровой сайт(название не привожу дабы не выглядело рекламой). 2-ух процессорная тачка, 512m, FreeBSD, Java 1.1.8. Работают несколько десятков java процессов(сервера для каждой из игр) которые легко держат нагрузку 300-400 человек в online, при этом же на машине еще крутится Apache в связке с Tomcat, CPU нагрузка дай бог 20%. При этом заметьте софт весь этот free, что само по себе уже большой плюс! >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >

Я не против free софта,я только за, но и здравый смысл мне не чужд. Я тоже не буду называть один популярный сайт у которого многое сделано на JAVA ( А точнее было ). Так в ихнем чате постоянно тормозухи и глюки. А потом через время смотришь и ссылках уже мелькают перловые модули к чему бы это. Ну и что доказывает ваш пример? А было бы это написано например на Perl - держало бы и 1000 человек, я больше про это говорю. То что написать можно все на JAVA и что оно будет работать я не сомневаюсь. СтранниК

anonymous
()

Под работой с шаблонами я понмаю следующее: у меня при создании сайтов имеется некий движок, который занимается логикой сайта и шаблоны страниц, которые "парсятся" этим самым движком и получается html.
Короче говоря, можно все конечно привести к xml, а можно и через работу со строками (рег. выражения и т.д.) Так вот, есть ли это в java ? И еще - php vs java по производительности и ресурсоемкости как ?
Сайты на php уверенно "держат" по 5-10 тысяч посетителей в день. Сможет ли java похвастаться тем же на том же железе ?

Anton_Khalikov
()

Психи. JSP для нормального сайта? Вы что, хотите разрешить наборщикам править что-то, где есть исполняемый код? Я не говорю о сменах дизайна, скиновании и т.д. То же касается обычного применения PHP. Дизайн надо отделять от логики.

А пятьдесят гигов для двухсот клиентов на Java --- это тоже несуразица. Конечно, при определенной кривизне рук и известной степени отсутствия мозгов можно и сто гигов захотеть... На Перле как-то крутился мой скриптик, интенсивно взаимодействуюжий с MySQL, обслуживающий до 400 000 пользователей в час. Думается мне, это требовало не менее, чем 200 пользователей Java :)

Cyberian, что за сайт? Хотя бы в общих чертах. Давно ищу приличную MMORPG для Линуха (UO не предлагать)...

CybOrc
()

Народ, есть хорошо написанные приложения, есть - написанные плохо. И те, и другие можно писать на разных языках. А бодаться - ява плохая, потому, что я видел тормозной софт, написанный на ней - это несерьезно.
Для примера, про тормознутость явы в Oracle App. Server. Я сравнивал возможности нескольких движков сервлетов. Был написан сервлет,
который формирует HTML страницу(~50K) и отдает ее клиенту. Условия опыта были таковы, что задержка ответа сервера более чем на 10 сек - штрафное очко. OAS без напряжения держал 200 HTTP подключений на PIII 500, 128M RAM, WinNT 4. Тест, камерный, конечно, но повод для размышления дает.

2 coder
Я слышал про нативные компиляторы для явы под Windows. У Borlanda, кажется, есть. Но специально не интересовался.

2 Anton_Khalikov

Насколько я понимаю, скрипты на PHP - не реентерабельны. Т.е. скрипт поднимается с диска по запросу клиента и движок его выполняет. Скрипт не сохраняет свое состояние или для этого нужны дополнительные ухищрения. Сервлет - специфическая программа, запущенная в контексте сервера приложений, со всеми свойствами устойчивого процесса. Например, сервлет может открыть соединение с СУБД(или их пул) и не тратиться на установления соединения для каждого запроса, очень просто отслеживаются зависимости между запросами(и между сервлетами).
А что до обработки шаблонов - тут дело личное, писать самому, пользоваться регулярками, которые у Джакарты есть, или JSP.
Но это частности.
Вообще говоря, с точки зрения проекта, ява удобна своей универсальностью. В ней хорошо проработано применение на стороне сервера(сервлеты, JSP), несколько хуже, но тоже ничего, использование на клиенте, спасибо MS, (апплеты не жалую, кстати). Можно писать приличные stand-alone приложения. Горячие головы аж 3D в нее впихнули, но это изврат. Все это большой гуд, если пишется что-то корпоративное в интранете - есть возможность избежать разнородности средств разработки, это очень уменьшает хлопоты. А то получается - этот модуль на С, эти на Perl, эту апликуху на Delphi ваяли, там VB. Только Sega Mega Drive не хватает.

Полуденный Бес

anonymous
()

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

CybOrc
()

Бес, а про 3D на Java что-нибудь конкретное можно увидеть? И есть ли к этому какие-нибудь нативные библиотеки, использующие аппаратные возможности?

CybOrc
()

2 CybOrc

Регулярки есть на http://jakarta.apache.org/regexp/index.html.

А насчет 3D, то явой просто накрыли вызовы OpenGL, в лучшем варианте, можно поискать на java.sun.com, точнее не скажу, - не помню. И в самом jdk есть примеры java 3D. Они помедленнее, само собой.

Полуденный Бес

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