Rails vs. Ruby on Rails의 Jruby, 차이점은 무엇입니까?
-
02-07-2019 - |
문제
나는 레일에서 Jruby와 Jruby를 시험해보고 싶다. 레일의 Jruby와 Ruby on Rails의 차이점에 대한 정보를 찾는 데 어려움이 있습니다.
내가 찾아야 할 차이점은 무엇입니까?
해결책
Jruby는 JVM에서 실행되는 Ruby 구현이며 Matz의 Ruby는 C 구현입니다.
주목할 주요 기능은 다음과 같습니다.
- Jruby는 Java VM에서 실행되며 Java Byte 코드로 편집되거나 해석됩니다.
- Jruby는 Java 코드와 통합 할 수 있습니다. Java 클래스 라이브러리 (.jar 's)가있는 경우 Jruby와 함께 Ruby 코드 내에서 참조하여 사용할 수 있습니다. 다른 방향으로는 Java 내에서 Jruby 코드를 호출 할 수도 있습니다. Jruby는 JVM 및 응용 프로그램 서버 기능을 사용할 수도 있습니다.
- Jruby는 일반적으로 Sun 's Glassfish 또는 Tomcat Web Server와 같은 Java 응용 프로그램 서버 내에서 호스팅됩니다.
- Jruby와 함께 기본 Ruby Gems를 사용할 수는 없지만 대부분의 인기있는 Ruby 라이브러리에 Jruby 구현이 있습니다.
Jruby Wiki에 나열된 다른 차이점이 있습니다.
다른 팁
이 질문에 대한 모든 답변에서 누락 된 중요한 것은 놀랍습니다. 길.
ESP에 관심을 가져야하는 주요 차이점. 레일로 제작 된 것과 같은 웹 응용 프로그램에서 진정한 동시성 ( "글로벌 통역사 잠금"무료). Jruby와 함께 두 개의 스레드가 실행될 때 (예 : 2 개의 사용자 요청을 제공 함) 단일 프로세스 내에서 동시에 실행할 수 있으며 MRI에는 Ruby 코드를 병렬로 실행하는 것을 피하는 GIL (1.9의 기본 스레드가 있어도)이 있습니다.
응용 프로그램 개발자에게는 이것이 Jruby를 고려하면서 명심해야 할 첫 번째 일입니다. config.threadsafe!
그러나 코드 (및 보석 코드)가 "진정으로"스레드 안전이어야하는지 확인해야합니다.
나는 틀렸을 수도 있지만, 당신은 정상적인 ror로 할 수없는 방식으로 Jruby on Rails 앱을 포장 할 수 있다고 생각합니다. 바지를 떨어 뜨리지 않고 판매 할 수 있습니다.
즉, 나는 ROR 포장에 충분히 익숙하지 않으므로 나를 붙잡지 마십시오 :)
대부분 동일하게 작동해야합니다. JROR에서는 ROR에 있지 않은 물건에 액세스 할 수 있습니다. 일반적으로 주로 배포 문제입니다.
그러나 ROR 앱이 JVM에서 실행되는 동등한 기본 라이브러리를 사용하는 경우 통증이 될 수 있습니다. 그러나 대부분의 Libs에는 비 네이티브 버전이 있습니다 (적어도 내가 겪은 인기있는 버전).