programing

JR Uby on Rails vs.루비 온 레일즈, 뭐가 달라요?

mailnote 2023. 5. 31. 18:22
반응형

JR Uby on Rails vs.루비 온 레일즈, 뭐가 달라요?

저는 레일즈에서 JR유비와 JR유비를 시험해 보려고 합니다.JRuby on Rails와 Ruby on Rails의 차이점에 대한 정보를 찾는 데 어려움을 겪고 있습니다.

제가 주의해야 할 차이점은 무엇입니까?

JRuby는 JVM에서 실행되는 Ruby 구현인 반면 Matz의 Ruby는 C 구현입니다.

주목해야 할 주요 기능은 다음과 같습니다.

  1. JRuby는 Java VM에서 실행되며 컴파일되거나 Java 바이트 코드로 해석됩니다.
  2. JRuby는 Java 코드와 통합할 수 있습니다.Java 클래스 라이브러리(.jar)가 있으면 Ruby 코드 내에서 JRuby와 함께 참조하여 사용할 수 있습니다.다른 방향에서는 Java 내에서 코드로 JRu를 호출할 수도 있습니다.JRuby는 JVM 및 애플리케이션 서버 기능도 사용할 수 있습니다.
  3. JRuby는 일반적으로 Sun의 GlassFish 또는 Tomcat 웹 서버와 같은 Java 애플리케이션 서버 내에서 호스팅됩니다.
  4. 기본 루비 보석을 JRuby와 함께 사용할 수는 없지만 대부분의 인기 있는 루비 라이브러리에 대한 JRuby 구현이 있습니다.

JRu by Wiki에 나열된 다른 차이점은 다음과 같습니다.

GIL과 관련된 이 질문에 대한 모든 대답에 중요한 것이 빠져 있다는 것이 놀랍습니다.

당신이 신경써야 할 중요한 차이점은 특히 그렇습니다.Rails로 구축된 웹 애플리케이션과 같은 웹 애플리케이션에서는 진정한 동시성("Global Interpreter Lock" 무료)이 제공됩니다.두 개의 스레드가 JRuby와 함께 실행될 때(예: 두 개의 사용자 요청 제공) 단일 프로세스 내에서 동시에 실행될 수 있는 반면, MRI에는 Ruby 코드를 병렬로 실행하지 않는 GIL이 있습니다.

애플리케이션 개발자에게 있어서 이것은 JRuby를 고려할 때 가장 먼저 염두에 두어야 할 것입니다. 왜냐하면 그것은 정말로 빛나기 때문입니다.config.threadsafe!그러나 코드(및 보석 코드)가 스레드 안전한지 확인해야 합니다.

제가 틀릴 수도 있지만, 저는 당신이 일반적인 RoR로는 할 수 없는 방식으로 JRuby on Rails 앱을 패키지화할 수 있다고 생각합니다 - Mingle 또는 유사한 것을 보세요.바지를 떨어뜨리거나 코모노를 열지 않고도 판매가 가능합니다.

그렇긴 하지만, 저는 RoR 포장에 익숙하지 않으니, 저를 붙잡지 마세요 :)

대부분 동일하게 작동해야 합니다.jRoR에서는 RoR에는 없는 것에 액세스할 수 있습니다.일반적으로 이 문제는 주로 전개 문제는 다음과 같습니다.

그러나 RoR 앱이 JVM에서 실행되는 것과 동등한 것이 없는 기본 라이브러리를 사용하는 경우에는 문제가 될 수 있습니다.하지만 대부분의 립스는 네이티브 버전이 아닙니다(적어도 제가 접한 인기 있는 립스).

여기에 이미 몇 가지 훌륭한 답이 있습니다.

이브슨은 이미 기본을 다루었고, 카레스(자신!)는 JRuby에게 GIL이 없다고 말했습니다.

좀 더 실용적인 관점에서 덧붙이자면, 저는 Ruby on Rails에서 앱을 실행한 다음 성능상의 이유로 JRuby로 마이그레이션했습니다.

두 가지 주요 성능 이점이 있었습니다. JRuby는 단순히 Ruby보다 빠르거나 빨랐으며, 두 번째는 Global Interpreter Lockkares가 언급한 부족함으로 인해 멀티스레딩을 수행할 수 있었지만 까다로운 성능 이점의 순서는 해제되었습니다.

매우 큰 루비 온 레일즈가 앱을 설치하여 1시간 만에 실행했습니다. 보석 등입니다.유일한 실제 결함은 Java의 정규식이 Ruby의 정규식과 약간 다르다는 것입니다.그것은 JRuby 측에서 기념비적인 성과입니다.

언급URL : https://stackoverflow.com/questions/151595/jruby-on-rails-vs-ruby-on-rails-whats-difference

반응형