Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

रूबी 2.1 में अपग्रेड करने से 15-20% तेज़ सर्वर प्रतिक्रिया और निकट-शून्य GC समय मिलता है

मैं इसका उत्तर एक स्क्रीनशॉट के साथ दूंगा:

{% img img-responsive /images/posts/ruby-2-1-improvement.png 645 259 मैं इसे एक बड़ा हां कहूंगा %}

हमने लगभग एक हफ्ते पहले प्रोडक्शन में रूबी 1.9 से 2.1 में अपग्रेड किया, और ये वही है जो हमने देखा। नीचे ग्रे सेक्शन हमारा गार्बेज कलेक्शन समय है जो लगभग शून्य हो गया। कुल मिलाकर, अपग्रेड ने हमें बिना किसी अतिरिक्त GC ट्यूनिंग के सर्वर प्रतिक्रिया समय में 15-20% सुधार दिया!

अपग्रेड शिप करने के बाद हमने Google और Bing की क्रॉल दरों में एक बड़ा उछाल देखा, जो हमारे जैसी साइट्स के लिए विशेष रूप से बहुत बढ़िया है जो सर्च इंजन ट्रैफिक से बहुत लाभान्वित होती हैं।

कूल, तो ये कितना कठिन था?

लगभग 150 जेम निर्भरताओं वाले एक बड़े रेल्स ऐप पर, अपग्रेड एक छोटे से कमिट और कुछ दिनों के टेस्टिंग में हुआ। हम अपने सभी सर्वर्स पर rvm चलाते हैं और शेफ के साथ प्रोविजन करते हैं, इसलिए अपने सभी सर्वर्स को 2.1 में अपग्रेड करना शेफ रोल फाइल में एक वर्जन नंबर बदलने जितना सरल था।

हमें क्या समस्याएं आईं?

हम अभी भी ट्रांसलिटरेशन के लिए iconv का उपयोग करते हैं, इसलिए हमें iconv जेम शामिल करना पड़ा, जो 2.x से हटाए गए बिल्ट-इन कार्यक्षमता को प्रतिस्थापित करता है। मैं रूबी-डिबग या डिबगर जेम को 2.x के तहत काम करने में कभी सक्षम नहीं था, इसलिए हम pry और pry-byebug पर स्विच हो गए। मैं अभी भी pry-byebug पर डिबगर जेम को प्राथमिकता देता हूं, लेकिन pry irb से इतना बेहतर है कि ये एक तरह से बराबर है। डेविड रोड्रिग्ज, byebug के लेखक, ने बताया कि pry-byebug के साथ मेरी समस्याएं शायद byebug के कारण नहीं थीं। वे पूरी तरह से सही थे! (ये वास्तव में byebug और pry के बीच इंटरैक्शन के कारण हुआ था)।

मिश्रित 1.9 और 2.1 वातावरण में, आपको बंडलर को 1.5.1 में अपग्रेड करना होगा। बंडलर के नए संस्करण के साथ, आप अपने Gemfile में 2.1 को एक प्लेटफॉर्म आवश्यकता के रूप में निर्दिष्ट कर सकते हैं:

gem 'iconv', '~> 1.0.2', :platform => [:mri_20, :mri_21]

ऐसा लगता है कि GitHub को 2.1 के साथ कुछ अन्य समस्याएं आईं, जिसका उल्लेख अमन गुप्ता ने इस गिस्ट में किया है: https://gist.github.com/tmm1/8393897, लेकिन हमने अभी तक कोई समस्या नोटिस नहीं की है।

शिप करने के बाद आप GC को ट्यून करना चाहेंगे और भी अधिक गति प्राप्त करने के लिए। अमन के पास इस पर बहुत सारे विवरणों के साथ एक अच्छी पोस्ट है कि इसे कैसे किया जाए: https://tmm1.net/ruby21-rgengc/. उनके ब्लॉग पर पूरी 2.1 श्रृंखला पढ़ने लायक है अगर आप अपने सस्ते, सरल रूबी अपग्रेड से अधिकतम लाभ प्राप्त करना चाहते हैं।

  1. macOS Mojave में अपग्रेड करें: फायदे, नुकसान और निर्णय युक्तियाँ macOS Mojave में अपग्रेड करें: फायदे, नुकसान और निर्णय युक्तियाँ

    यदि आप macOS हाई सिएरा या पुराने संस्करण चला रहे हैं और लगातार Mojave में अपग्रेड करने के संकेत देख रहे हैं, तो यह पूछना स्वाभाविक है, क्या मुझे अपने मैक को Mojave में अपग्रेड करना चाहिए?। ऐसा करने के कई कारण हैं, लेकिन फिर आपके मौजूदा macOS संस्करण को अपग्रेड न करने के कारण भी हैं। बहुत से उपयोगकर

  1. क्या macOS Catalina अपग्रेड करने लायक है? एक स्पष्ट गाइड क्या macOS Catalina अपग्रेड करने लायक है? एक स्पष्ट गाइड

    macOS Catalina ने 7 अक्टूबर 2019 को अपनी आधिकारिक शुरुआत की और इसका नवीनतम रिलीज़ पिछले महीने रोल आउट हुआ, Catalina 10.15.7 जो प्रदर्शन सुधार, बग फिक्स और उन्नत सुरक्षा का एक समूह पेश करता है। इसके पिछले संस्करणों की तुलना में, macOS Catalina प्रदर्शन और विश्वसनीयता के मामले में बहुत अधिक स्थिर साबि

  1. WiFi 6 समझाया: लाभ, विशेषताएं, और कब अपग्रेड करें WiFi 6 समझाया: लाभ, विशेषताएं, और कब अपग्रेड करें

    CES 2020 में, यह घोषणा की गई थी कि कई डिवाइस WiFi 6 से लैस होंगे। तो, यह वास्तव में क्या है और यह वर्तमान WiFi कनेक्शन से कैसे अलग होने जा रहा है। यह वही है जिस पर हम वर्तमान पोस्ट में चर्चा करते हैं कि WiFi 6 क्या है, और क्या अपग्रेड करना अनुकूल है। लैपटॉप, स्मार्टफोन, और टैबलेट हैं, जो WiFi के नवी