Java (Grails) или Erlang (Elixir) на короткие веб-запросы: скорость, масштабируемость? - PullRequest
6 голосов
/ 08 января 2012

Я знаю, что даже вопрос Erlang или Java кажется довольно странным, потому что это достаточно разные языки с разными парадигмами. Но теперь я очень поверхностно знаю их обоих, поэтому, спросите вас, что бы вы узнали более ценным, быстрым, масштабируемым ? Что приходит мне в голову:

  1. Java - основной язык. Я не уверен насчет Groovy и Grails, но если проект становится чем-то большим, чем ваше собственное хобби - гораздо проще найти Java-программистов для поддержки этого кода. Elixir - хобби одного хорошего программиста на Erlang, поэтому было бы очень сложно поддерживать код в Elixir. Кроме того, в Grails уже написан фреймворк, поэтому его лучше реализовать, чем мой собственный, написанный в фреймворке Elixir.
  2. Приложение Erlang (хорошо написано) - это синоним масштабируемости. Но когда дело доходит до запуска веб-приложений, выполните несколько простых запросов и умрете - нет необходимости масштабировать их больше, чем простые запросы пользователей Round-Robin между ними (процессы Java на разных машинах)?
  3. Если мы говорим о многих простых запросах (без длинных опросов и т. Д.) - очень много процессов просыпаются и умирают каждую секунду - у Эрланга действительно легкая модель процессов, так что ... Что насчет Java и множества новых порожденных и убитых обрабатывается каждую секунду?

Заранее спасибо.

PS Диаграмма из Этот тест производительности ставит под сомнение производительность Java VM.

1 Ответ

0 голосов
/ 18 февраля 2012

Определенно, Java. Тест производительности , на который вы ссылаетесь, показывает, что производительность Java / Netty равна производительности многоядерного Erlang. Вы можете использовать множество библиотек Java Actor и Async I / O, поэтому каждый запрос не будет запускать новый процесс или поток - просто создайте новый обработчик в наносекундах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...