4 पॉइंट द्वारा xguru 2024-12-26 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • JRuby, Ruby की प्रोडक्टिविटी को JVM की परफॉरमेंस के साथ जोड़ने वाली तकनीक है, जबकि JBang सरल dependency management और रनिंग environment प्रदान करता है।
    • दोनों उपकरणों को जोड़कर Ruby और Java लाइब्रेरीज़ का एकीकृत उपयोग संभव है।
    • JBang: Java/Kotlin/Groovy प्रोग्रामों को आसानी से रन करने और dependencies manage करने वाला टूल।
    • JRuby: JVM पर चलने वाला Ruby implementation, जो Ruby की उत्पादकता और JVM का performance जोड़ता है।
  • JRuby में Java लाइब्रेरीज़ इस्तेमाल करने के लिए आवश्यक dependency management (Gradle/Maven आदि) जटिल और कठिन है।
    • हमने JBang की मदद से निर्भरता को सरल तरीके से manage करने और JRuby स्क्रिप्ट रन करने की approach को टेस्ट करने का फैसला किया।
  • Docker आधारित सेटअप
    • Amazon Corretto (JDK) आधारित Docker image का उपयोग किया।
    • JRuby और JBang को डाउनलोड कर इंस्टॉल किया और PATH में जोड़ा।
    • Dockerfile के जरिए Ruby Gem और Java लाइब्रेरीज़ दोनों को शामिल किया।
  • एक सरल RunJRuby.java बनाया: JBang से Java निर्भरता प्रबंधन करते हुए JRuby स्क्रिप्ट रन करना।
    • ProcessBuilder के साथ JRuby रन टाइम environment सेट किया।
    • CLASSPATH सेट कर Java निर्भरताओं को JRuby को पास किया।
  • Javalin (Java-based web framework) को JRuby के साथ इस्तेमाल करके REST API बनाई।
    • JWT authentication जोड़कर और SQLite DB के साथ एकीकरण के साथ CRUD API implement की।
    • Java में HTTP, DB ऑपरेशन आदि high-performance libraries का उपयोग और Ruby में business logic हैंडलिंग की।
  • प्रदर्शन परीक्षण के परिणाम
    • Apache Benchmark (ab) टूल से 1500 requests (concurrency 25) का response time नापने का टेस्ट रन किया।
    • परिणाम: 95% requests 10ms के भीतर handle हुईं।
    • नवीनतम Javalin version और Virtual Threads का उपयोग करके उच्च performance हासिल हुआ।
  • Ruby और Java दोनों के फायदे combine करके productivity और performance दोनों को पूरा किया गया।
  • GitHub Repo : jbang-jruby-javalin देखें

1 टिप्पणियां

 
clickin 2024-12-26

Java+Groovy का वो घातक Memory leak
JVM पर स्क्रिप्ट चलाते समय कुछ खास स्थितियों में memory leak होने के उदाहरण मैंने देखे थे, तो पूछना चाह रहा/चाह रही हूँ कि jruby में क्या होता है?