तो आपका Rails ऐप बहुत सारी RAM ले रहा है। इसमें नया क्या है? लेकिन शायद चीजें बस ऐसी ही नहीं हैं। शायद आपके ऐप्लिकेशन का मेमोरी फुटप्रिंट एक या अधिक फूले हुए जेम्स द्वारा बढ़ाया जा रहा है।
मैं हाल ही में रिचर्ड श्नेमैन द्वारा एक बहुत ही कूल प्रोजेक्ट से टकराया। इसे derailed कहा जाता है, और यह स्वचालित बेंचमार्किंग टूल्स का एक संग्रह है। यहाँ GitHub रेपो है।
आपको बस इसे अपने जेमफाइल में इस तरह जोड़ना है:
gem 'derailed', group: :development gem "stackprof", group: :development
फिर आप ठीक से देख सकते हैं कि आपके प्रत्येक जेम को कंपाइल टाइम पर कितनी मेमोरी की आवश्यकता होती है:
bundle:mem कमांड का उपयोग करके देखें कि आपके प्रत्येक जेम कंपाइल टाइम पर कितनी रैम का उपयोग करता है
आप यह भी देख सकते हैं कि आपके जेम्स लोड टाइम पर कितने ऑब्जेक्ट आवंटित करते हैं।
लोड टाइम पर ऑब्जेक्ट आवंटन के बारे में जानकारी देखने के लिए bundle:objects का उपयोग करें
आपके ऐप्लिकेशन के चलते समय मेमोरी उपयोग को मापने के लिए उपकरण भी हैं। मुझे व्यक्तिगत रूप से इन्हें जांचने का मौका नहीं मिला है, क्योंकि आपको अपने ऐप को अपने विकास कंप्यूटर पर प्रोडक्शन मोड में चलाने में सक्षम होना होगा।