Почему эликсир быстрее, чем JRuby?

Я выбрал JRuby, потому что он похож на Elixir в некотором смысле, что они оба являются динамическими языками, которые скомпилированы в байт-код, чтобы потреблять VM.

Если я правильно понял, так как они являются динамическими, компилятор не имеет необходимой информации, чтобы сделать байт-код столь же эффективным, как и их статические типы.

Нужно ли что-то делать с тем, что BEAM является зарегистрированной базой VM, а JVM - на основе стека?

Спасибо:)

2 ответа

Эликсир не быстрее, чем JRuby, а JRuby не быстрее Elixir. Есть много задач, когда Elixir быстрее, чем JRuby, и есть другой способ. И как всегда это зависит от многих вещей. Если вы говорите о веб-сервере сложного приложения, возможно, но это не о виртуальной базе на основе регистров или стека, а о простых процессах и простоте сетевых стеков на основе Elixir.


Моя догадка заключается в том, что язык эликсира "менее" динамичен (или другие цивики, которые авторам JRuby пришлось обойти/реализовать, что замедляет время выполнения).

Есть несколько предложений по его ускорению:

https://github.com/jruby/jruby/wiki/PerformanceTuning

https://github.com/jruby/jruby/wiki/Improving-startup-time

https://github.com/jruby/jruby/wiki/Truffle

licensed under cc by-sa 3.0 with attribution.