Реальные различия между «Java-сервером» и «Java-клиентом»?

попробуйте это -

  var units = new { Name = "Phone", Color= "White" };
    var jsonResponse = JsonConvert.DeserializeAnonymousType(json, units );
375
задан Hearen 23 March 2019 в 07:38
поделиться

4 ответа

Это действительно связано с [1 115] HotSpot и значение по умолчанию значения опции ( опции Java HotSpot VM ), которые отличаются между конфигурацией клиента и сервера.

От Глава 2 технического описания ( архитектура Java HotSpot Механизма Производительности ):

JDK включает две разновидности VM - клиентское предложение и VM, настроенный для серверных приложений. Эти два решения совместно используют кодовую базу Java HotSpot среды выполнения, но используют различные компиляторы, которые подходят для отчетливо уникальных рабочих характеристик клиентов и серверов. Эти различия включают политику встраивания компиляции и значения по умолчанию "кучи".

, Хотя Сервер и Клиент VMs подобны, Сервер, VM был особенно настроен для максимизации пиковой рабочей скорости. Это предназначается для выполнения продолжительных серверных приложений, для которых нужна самая быстрая рабочая скорость больше, чем быстрое время запуска или меньший объем потребляемой памяти во время выполнения.

Клиент компилятор VM служит обновлением и для Классического VM и для своевременных (JIT) компиляторов, используемых предыдущими версиями JDK. Клиент VM предлагает улучшенную производительность времени выполнения для приложений и апплетов. Клиент Java HotSpot VM был особенно настроен для сокращения времени запуска приложения и объема потребляемой памяти, делая его особенно хорошо, подошел для клиентских сред. В целом клиентская система лучше для графический интерфейсов пользователя.

, Таким образом, реальная разница находится также на уровне компилятора:

Клиент компилятор VM не пытается выполнить многую из более сложной оптимизации, выполненной компилятором в Сервере VM, но в обмен, это требует, чтобы меньше времени проанализировало и скомпилировало часть кода. Это означает Клиент, который VM может запустить быстрее и требует меньшего объема потребляемой памяти.

Сервер VM содержит усовершенствованный адаптивный компилятор, который поддерживает многие из тех же типов оптимизации, выполненной путем оптимизации компиляторов C++, а также некоторой оптимизации, которая не может быть сделана традиционными компиляторами, такими как агрессивное встраивание через виртуальные вызовы метода. Это - конкурентоспособное преимущество и преимущество производительности перед статическими компиляторами. Адаптивная технология оптимизации очень гибка в своем подходе, и обычно превосходит даже усовершенствованные методы статического анализа и компиляции по характеристикам.

Примечание: выпуск [1 117] jdk6 обновляют 10 (см. Выпуск Обновления Notes:Changes в 1.6.0_10 ), пытался улучшить время запуска, но по различной причине, чем опции горячей точки, будучи упакованным по-другому с намного меньшим ядром.

<час>

G. Demecki указывает в комментариях , что в 64-разрядных версиях JDK, -client опция много лет игнорируется.
См. команда Windows java:

-client

Выбирает клиент Java HotSpot VM.
А 64-разрядный способный JDK в настоящее время игнорирует эту опцию и вместо этого использует сервер VM Горячей точки Java.

347
ответ дан Hearen 23 March 2019 в 07:38
поделиться

IIRC сервер, VM делает больше оптимизации горячей точки при запуске, таким образом, это работает быстрее, но берет немного дольше для запуска и использует больше памяти. Клиент VM задерживает большую часть оптимизации для разрешения более быстрого запуска.

Редактирование для добавления: Вот некоторая информация от Sun, это не очень конкретно, но даст Вам некоторое представление.

15
ответ дан Mike Akers 23 March 2019 в 07:38
поделиться

Я не заметил различия во время запуска между этими 2, но синхронизировал очень минимальное улучшение производительности приложения с "-сервер" (сервер Соляриса, все использование SunRays для выполнения приложения). Это находилось под 1.5.

3
ответ дан Brian Knoblauch 23 March 2019 в 07:38
поделиться
  • 1
    По некоторым причинам, добавляя их к моему web.config для сайта, размещенного в Просветах в облаках Rackspace весь мой CSS, как будто файл CSS больше не распознается. Какая-либо подсказка, почему это произошло бы? – Eric K 19 December 2012 в 16:21

IIRC, это включает стратегии сборки "мусора". Теория состоит в том, что клиент и сервер будет отличаться с точки зрения недолгих объектов, который важен для современных алгоритмов GC.

Вот ссылка на режиме сервера. Увы, они не упоминают клиентский режим.

Вот очень полная ссылка на GC в целом; это более основная статья . Не уверенный, если любой адрес - сервер по сравнению с - клиент, но это - соответствующий материал.

Ни в Каком Пухе Просто Материал, и Ken Sipe и Glenn Vandenburg делают большие переговоры по такого рода вещи.

5
ответ дан Michael Easter 23 March 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: