2016-08-09 7 views
4

JRuby는 Elixir와 비슷하기 때문에 VM에 의해 소비되도록 바이트 코드로 컴파일되는 동적 언어라는 의미에서 사용되었습니다.왜 Elixir가 JRuby보다 빠릅니까?

동적 인 관계로 컴파일러는 바이트 코드를 정적으로 대응하는 것보다 효율적으로 만드는 데 필요한 정보를 가지고 있지 않기 때문에 올바르게 이해할 수 있습니다.

JVM이 스택 기반 인 동안 BEAM이 등록 된 기본 VM이라는 사실을 가지고 무엇인가해야합니까?

감사합니다 :)

+0

귀하의 질문의 제목은 JRuby를 느리게이라고 주장하지만 실제로 측정이 있음을 백업해야합니까 청구? – the8472

답변

2

비약이 JRuby를하고 JRuby를보다 빠르다는 비약보다 빠릅니다. Elixir가 JRuby보다 빠르며 또 다른 방법이 있습니다. 그리고 언제나처럼 그것은 많은 것들에 달려 있습니다. 복잡한 애플리케이션 웹 서버에 대해 이야기하고 있다면 아마 등록이나 스택 기반 VM이 아니라 가벼운 프로세스와 Elixir 기반 웹 스택의 단순성에 관한 이야기 ​​일 것입니다.

+0

Hynek의 의견에 감사드립니다.하지만 JRuby가 복잡한 앱 서버에서 동일한 수준의 효율성을 달성하는 것을 막을 수있는 방법은 무엇입니까? –

+1

이것은 좋은 글입니다 : http://ds.cs.ut.ee/courses/course-files/To303nis%20Pool%20.pdf tl; dr; 실제로 Erlang의 액터 모델이 프로세스를 처리하는 방식 (다시 말하면 OS 레벨 스레드에 대해 1 대 1로 매핑되지 않음)을 제외하고는 동시성을 향상시킵니다. – Mac

+1

당신이 앱 서버에 대해 이야기하고 있다면 실행중인 런타임 환경과는 독립적으로 단순히 구현 품질로 인해 쉽게 상수 요소 (또는 악화)가 다를 수있는 매우 복잡한 프로그램이라고 생각해야합니다. VM의 최상위에서 실행되는 완전히 별개의 소프트웨어를 기반으로 한 VM의 성능을 비교하는 것은 매우 어렵습니다. 마치 하나의 mysql과 다른 하나의 포스트 그레스를 실행하여 VM웨어와 xen 성능을 비교하는 것과 같습니다. – the8472

관련 문제