Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > java -client vs -server


Автор: Temdegon 13.10.2009, 04:42
Много раз читал про особенности серверной и клиентской JVM. Везде четко написано, что в "долгоиграющих" программах, серверная JVM рулит.
Решил для эксперимента попробовать запустить NetBeans на серверной JVM и посмотреть, что из этого выйдет. 
Но набрав в консоле java -server, получил в ответ
Цитата

Error: no `server' JVM at `C:\Program Files\Java\jre6\bin\server\jvm.dll'.

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

Автор: COVD 13.10.2009, 06:19
В клиентской JVM оптимизация кода делается сразу, в серверной - сначала накапливается статистика выполнения программы. Серверная лучше оптимизирует код и более производительная, но ей требуется время на "обучение".  Из статьи http://java.sun.com/javase/6/docs/technotes/guides/vm/server-class.html можно понять, что для некоторых платформ JDK имеет только один вариант. i586 Microsoft Windows  - только клиент.

На мой взгляд IDE - типичное клиентское приложение. Оно не работает под регулярной нагрузкой, к которой серверная машина могла бы эффективно адаптироваться. Для комфортной работы в IDE надо просто делать проекты небольшими, т.е. разбивать приложение на модули, библиотеки, сервисы. 

Автор: LSD 13.10.2009, 14:25
Цитата(COVD @  13.10.2009,  06:19 Найти цитируемый пост)
Из статьи http://java.sun.com/javase/6/docs/technote...rver-class.html можно понять, что для некоторых платформ JDK имеет только один вариант. i586 Microsoft Windows  - только клиент.

На самом деле, под Windows JDK поставляется с обоими вариантами JVM. А вот JRE действительно поставляется только с client версией.

Автор: Temdegon 13.10.2009, 14:33
Спасибо.

Автор: COVD 13.10.2009, 17:39
Цитата

На самом деле, под Windows JDK поставляется с обоими вариантами JVM.

Спасибо за уточнение. В документации, к сожалению, как-то скупо написано, что в виндоуз i583 клиентская машина по дефолту и возможность автоматического переключения в таблице не указана. Явного перечисления где что имеется я не нашел. Поэтому предполагал.

Автор: serger 14.10.2009, 15:21
Цитата(LSD @  13.10.2009,  14:25 Найти цитируемый пост)
А вот JRE действительно поставляется только с client версией. 

Хм.. А те кто пытается запустить Netbeans без JDK с ключём -server в пролёте?

Автор: LSD 14.10.2009, 15:58
Цитата(serger @  14.10.2009,  15:21 Найти цитируемый пост)
А те кто пытается запустить Netbeans без JDK с ключём -server в пролёте? 

Ну можно зайти в папку JDK_HOME\jre\bin\ и скопировать папку server в JRE_HOME\bin\, вроде должно сработать.



Цитата(COVD @  13.10.2009,  17:39 Найти цитируемый пост)
В документации, к сожалению, как-то скупо написано, что в виндоуз i583 клиентская машина по дефолту и возможность автоматического переключения в таблице не указана. Явного перечисления где что имеется я не нашел.

http://java.sun.com/javase/6/docs/technotes/guides/vm/server-class.html
Так что по мнению Sun - сервера под Windows не работают (на x86 архитектуре) smile

Автор: serger 14.10.2009, 16:05
Цитата(LSD @  14.10.2009,  15:58 Найти цитируемый пост)
Ну можно зайти в папку JDK_HOME\jre\bin\ и скопировать папку server в JRE_HOME\bin\, вроде должно сработать.

Спасибо за ссылку.. Изучимс!..  smile 
Это я к тому, что многие PHP/C девелоперы пытаются так прооптимизировать Netbeans. У них что, результат типа "какая водка вкуснее"?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)