जवाबों:
JRuby रूबी कार्यान्वयन है जो JVM पर चलता है जबकि Matz का रूबी एक C कार्यान्वयन है।
ध्यान देने योग्य मुख्य विशेषताएं हैं:
JRuby विकी में सूचीबद्ध अन्य अंतर हैं:
मुझे आश्चर्य है कि जीआईएल से संबंधित इस प्रश्न के सभी उत्तरों में एक महत्वपूर्ण बात याद आ रही है ।
मुख्य अंतर आपको जासूसी के बारे में परवाह करना चाहिए। वेब-अनुप्रयोगों में जैसे रेल के साथ बनाया गया सच है संगामिति ("ग्लोबल इंटरप्रेटर लॉक" मुफ्त)। जब JRuby के साथ दो थ्रेड चल रहे हैं (उदाहरण के लिए 2 उपयोगकर्ता अनुरोधों की सेवा) तो वे एक प्रक्रिया के भीतर समवर्ती चलाने में सक्षम हैं, जबकि MRI में GIL (1.9 के मूल थ्रेड्स के साथ) है जो समानांतर में रूबी कोड को निष्पादित करने से बचता है।
एक एप्लिकेशन डेवलपर के लिए जेरीबी पर विचार करते समय यह ध्यान रखने वाली पहली बात है, क्योंकि यह वास्तव में चमकता है, config.threadsafe!
लेकिन आपको अपने कोड (और अपने जवाहरात कोड) को "सही मायने में" थ्रेड-सुरक्षित बनाने की आवश्यकता है।
मैं गलत हो सकता हूं, लेकिन मुझे लगता है कि आप रेल एप्लिकेशन पर एक JRuby को एक तरह से पैकेज कर सकते हैं जो आप सामान्य RoR के साथ नहीं कर सकते हैं - मिंगल या समान देखें। आपकी पैंट को गिराए बिना / कोमोनो खोलकर बेचना संभव बनाता है।
उस ने कहा, मैं RoR पैकेजिंग से परिचित नहीं हूँ, इसलिए मुझे मत पकड़िए :)
ज्यादातर यह एक ही काम करना चाहिए। jRoR में आप RoR में सामान नहीं ले सकते। आमतौर पर इसकी मुख्य रूप से तैनाती की चिंता है।
हालाँकि, यदि आपका RoR ऐप देशी पुस्तकालयों का उपयोग करता है, जो JVM पर चलने वाले समकक्ष नहीं है, तो यह एक दर्द हो सकता है। हालाँकि, अधिकांश लिबास में एक गैर देशी संस्करण उपलब्ध होता है (कम से कम लोकप्रिय हैं जो मैं भर आया हूं)।
यहां कुछ शानदार जवाब पहले से ही हैं।
eebbesen ने पहले ही मूल बातें कवर कर ली हैं, और kares (खुद!) ने हमें बताया है कि JRuby का कोई GIL नहीं है।
मैं अधिक व्यावहारिक दृष्टिकोण से जोड़ूंगा, मैंने रूबी ऑन रेल्स पर ऐप लॉन्च किया है, और फिर प्रदर्शन कारणों से JRuby में स्थानांतरित कर दिया।
दो मुख्य प्रदर्शन लाभ थे: JRuby कुछ परिस्थितियों में रूबी की तुलना में अधिक तेज़ (या था), और दो, ग्लोबल इंटरप्रेटर लॉक कार्स के उल्लेखों की कमी ने मुझे मल्टीथ्रेडिंग करने की अनुमति दी, जो कि मुश्किल, जबकि परिमाण प्रदर्शन लाभों के आदेशों को अनलॉक करता है। ।
रेल एप्लिकेशन पर एक बहुत बड़ी रूबी को एक घंटे में, जवाहरात और सभी को चित्रित किया गया। केवल वास्तविक गड़बड़ यह थी कि जावा के रेगीक्स रूबी की तुलना में थोड़ा अलग हैं। यह JRuby की ओर से एक स्मरणीय उपलब्धि है।