Tôi đang tìm cách thử JRuby và JRuby trên Rails. Tôi đang gặp khó khăn khi tìm kiếm thông tin về sự khác biệt giữa JRuby trên Rails và Ruby on Rails.JRuby on Rails và Ruby on Rails, sự khác biệt là gì?
Sự khác biệt mà tôi cần tìm kiếm là gì?
Tôi đang tìm cách thử JRuby và JRuby trên Rails. Tôi đang gặp khó khăn khi tìm kiếm thông tin về sự khác biệt giữa JRuby trên Rails và Ruby on Rails.JRuby on Rails và Ruby on Rails, sự khác biệt là gì?
Sự khác biệt mà tôi cần tìm kiếm là gì?
JRuby là triển khai ruby chạy trên JVM trong khi ruby của Matz là triển khai C.
Các tính năng chính cần lưu ý là:
Có sự khác biệt khác được liệt kê ở wiki JRuby:
chủ yếu là nó cũng hoạt động tương tự. trong jRoR bạn có thể truy cập những thứ bạn không có trong RoR. Thông thường chủ yếu là một mối quan tâm triển khai.
Tuy nhiên, nếu ứng dụng RoR của bạn sử dụng thư viện gốc không có tương đương chạy trên JVM, điều đó có thể là một nỗi đau. Tuy nhiên hầu hết các libs có một phiên bản không có sẵn (ít nhất là những cái phổ biến tôi đã đi qua).
Tôi có thể sai, nhưng tôi nghĩ bạn có thể đóng gói một JRuby on Rails ứng dụng theo cách bạn không thể làm với RoR bình thường - xem Mingle hoặc tương tự. Làm cho nó có thể bán mà không cần thả quần của bạn/mở komono.
Điều đó nói rằng, tôi không đủ quen thuộc với RoR bao bì, vì vậy không giữ tôi để nó :)
Bạn hoàn toàn chính xác về điều này , mặc dù bạn sẽ cần một thứ như đá quý Rawr hoặc Roir để làm điều này hoàn toàn (lần trước tôi sử dụng Mingle, nó có các tập tin Ruby không bị xáo trộn ...). –
Tôi ngạc nhiên có một điều rất quan trọng còn thiếu trong tất cả các câu trả lời cho câu hỏi này, liên quan đến GIL .
Sự khác biệt chính bạn nên quan tâm đặc biệt. trong các ứng dụng web chẳng hạn như các ứng dụng được tạo bằng Rails là đồng thời thực sự ("Khóa thông dịch toàn cầu" miễn phí). Khi hai luồng đang chạy (ví dụ: phục vụ 2 yêu cầu người dùng) với JRuby, chúng có khả năng chạy đồng thời trong một quy trình duy nhất, trong khi MRI có GIL (ngay cả với các luồng gốc của 1.9) tránh việc thực thi mã Ruby song song. Đối với một nhà phát triển ứng dụng, đây là điều đầu tiên cần lưu ý khi xem xét JRuby, vì nó thực sự tỏa sáng với config.threadsafe!
nhưng yêu cầu bạn phải đảm bảo mã của bạn (và mã đá quý) của bạn "an toàn".
Cảm ơn bạn, câu trả lời đó chỉ là về mọi thứ tôi đang tìm kiếm.:) – epochwolf
oh, và nó chạy chậm hơn một chút so với 1,9 – rogerdpack
Ngoài ra, JRuby nên có chủ đề hệ điều hành gốc thực, như tôi đã nói ... –