Самая быстрая ОС для приложений Java
У меня многопоточная программа на Java. Я имею дело с определенными проблемами производительности.
Я улучшил все. Оборудование + Программное обеспечение. Теперь я думаю, что пришло время перейти к правильной операционной системе.
Мне было интересно, какая ОС является самой быстрой для виртуальной машины Java?
Я использую Sun Java6. Считаете ли вы, что Sun Solaris будет лучшим выбором для приложений Java? Или FreeBSD? или CentOS (я им пользуюсь сейчас)?
Спасибо
5 ответов
Производительность JVM варьируется от платформы к платформе. Уже давно я оцениваю производительность jvm на разных платформах, но когда я делал это несколько лет назад, на JDK1.4, Solaris был лучшим. В то время JVM в Linux все еще была новой, и были проблемы с поддержкой потоков. Ситуация сильно изменилась в реализации JVM.
Конечно, нет простого способа судить об этом, вы должны выбрать идеальную аппаратную платформу и установить Soaris, Linux и т. Д. На одном компьютере и выполнить несколько тестов для оценки. Реализация JIT для поддержки целевого процессора также будет иметь значение.
Изучив различные расширенные параметры JVM, поддерживаемые каждой платформой, вы получите четкое представление о том, какую оптимизацию вы сможете выполнить.
Также рассмотрите другие JVM, такие как JRockit или IBM JVM.
Вы найдете очень незначительное улучшение (если таковое имеется), переключая используемую ОС, если только вы не используете действительно старую версию прямо сейчас, и даже тогда это может не дать вам требуемого прироста производительности.
Я предполагаю, что вы все еще ограничены аппаратным обеспечением, на котором работаете в данный момент, или, возможно, ваше Java-приложение является основной проблемой, и, возможно, стоит обратить на это внимание, прежде чем использовать больше оборудования для этой проблемы.
Удивительно, но Windows - самая быстрая платформа для Java, так как это платформа для разработчиков, Solaris оказалась в худшем положении. В Linux вы можете выбирать между Sun, IBM, OpenJDK и BEA для вашего удобства.
Реальный ответ - это то, что станет самой простой и экономически эффективной платформой для управления, вероятно, CentOS или Ubuntu Server.
Между различными дистрибутивами практически нет ничего, что позволяет им выполнять приложения Java.
Тем не мение. Вы должны выбрать ОС с поддержкой современного оборудования и наборов микросхем (т.е. относительно нового ядра) и стабильным графиком выпуска. CentOS хорош, последняя версия 5.4, поддерживает некоторые хорошие новые функции, такие как встроенная поддержка FUSE.
Я бы, наверное, выбрал Ubuntu, регулярные выпуски каждые 6 месяцев, 3-летнюю версию LTS, выходящую в апреле, очень новые ядра и хорошие релизы патчей, а также хорошую поддержку sun-java6.
Выберите свою ОС для производительности и совместимости оборудования, поддержки и безопасности.
Конечно, вы должны протестировать производительность в вашей непроизводственной аппаратной среде, если вы хотите получить правильный ответ.
Вы должны учитывать затраты на поддержку, связанные с производственной средой с несколькими ОС, и учитывать их при расчете того, какую выгоду в производительности вы получаете.
Я предполагаю, что любой получаемой вами выгоды "недостаточно", чтобы перевесить дополнительные затраты на поддержку нескольких ОС в производстве. Поговорите с вашей операционной командой, чтобы узнать.
Ваши усилия могут быть лучше потрачены на попытки повысить производительность в операционных системах, которые ваша операционная группа уже поддерживает в работе. Вы можете вносить изменения в ОС, а также переключать параметры виртуальной машины и, конечно же, исправлять свой код, чтобы сделать его более эффективным:). Вы также можете рассмотреть различные варианты оборудования. Мы обнаружили, что разные типы процессоров ведут себя очень по-разному в наших рабочих нагрузках, которые совсем не похожи на те, которые тестируют типичные тесты.