MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

ओएस एक्स पर आरएसपीईसी लोड समय अविश्वसनीय लंबा

बंडलर

ऐसा लगता है कि मेरे लिए कुछ बंडलर लोडिंग समस्या है। मैं कुछ और माप करने की सलाह दूंगा। क्या आप प्रति प्रोजेक्ट 1 रत्न का उपयोग करते हैं या 1 रत्न में सब कुछ संग्रहीत करते हैं (यह सच है यदि आप किसी का उपयोग नहीं करते हैं)? यदि आपके पास 1 निर्देशिका (यानी सभी के लिए 1 रत्न) में बहुत सारे रत्न हैं, तो यह अंततः बंडलर को बहुत धीमा कर देगा, क्योंकि इसे अपना काम करने के लिए और अधिक पथों को पार करने की आवश्यकता है।

bundle | wc -l # how many gems bundler uses in your current project
gem list -q | wc -l # how many gems in your gemset 

अगर gem list -q | wc -l काफी बड़े मूल्य की रिपोर्ट करता है (मेरे पास 237 . है और मेरे लिए सब कुछ सामान्य लगता है), हो सकता है कि आपको स्थापित रत्नों को प्रति प्रोजेक्ट एक अलग रत्न में विभाजित करने की आवश्यकता हो।

time . के साथ कुछ और माप करें कमांड, real के लिए देखें मान, यह कुल योग है।

सबसे पहले, अपना bundled_rspec निकालें रैपर, इसकी आवश्यकता नहीं है नवीनतम RVM संस्करण।

फिर बंडलर के साथ और उसके बिना अपने आरएसपीईसी लोडिंग को मापें:

time rspec -v # with implicit bundler loading, rubygems-bundler gem is in use
time NOEXEC_DISABLE=1 rspec -v # without bundler, disable rubygems-bundler gem for this call`

अगर time rspec -v अपेक्षाकृत छोटे Gemfile वाले प्रोजेक्ट के लिए भी आपको बड़ी संख्या देता है, यह एक बंडलर समस्या है।

रेल

अगली बाधा आमतौर पर रेल ही होती है। एक परीक्षण को मापने का प्रयास करें जो रेल लोड नहीं करता है (यानी केवल spec_helper ) और फिर रेल के साथ परीक्षण करें (यानी rails_helper . के साथ )।

जैसे ही आप संख्याओं में बड़ा अंतर देखना शुरू करेंगे, आपको पता चल जाएगा कि आपको कहां समस्या है।

वसंत

रेल के प्रदर्शन में सुधार के लिए एक त्वरित समाधान के रूप में spring का उपयोग किया जाता है। मणि . यदि आप रेल का उपयोग करते हैं तो 4.1+ स्प्रिंग पहले से ही सक्षम है।

rspec . के लिए स्प्रिंग को सक्षम करने के लिए अपने Gemfile में जोड़ें

gem 'spring-commands-rspec', group: :development

और चलाएं

$ bundle install
$ spring binstub --all

अंतिम आदेश आपके प्रोजेक्ट के bin . में सभी स्प्रिंग समर्थित बायनेरिज़ के लिए रैपर जेनरेट करेगा फ़ोल्डर (वहां एक नज़र डालें और उन्हें प्रतिबद्ध करना न भूलें)। उसके बाद आपको rspec चलाना चाहिए bin/rspec . के साथ . पहला रन अभी भी धीमा होगा, लेकिन सभी परिणामी रन काफी तेज होने चाहिए क्योंकि रेल पहले ही लोड हो चुकी होगी।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. OS X पर mongod HostnameCanonicalizationWorker त्रुटि

  2. नोड ड्राइवर का उपयोग कर मेजबानों के बीच मोंगोडब में क्लोन डेटाबेस

  3. वसंत-डेटा-मोंगो - वैकल्पिक क्वेरी पैरामीटर?

  4. ऑब्जेक्ट आईडी परिभाषित नहीं है। मोंगो शैल में आईडी द्वारा वस्तु नहीं मिल रही है

  5. mongodb . के साथ डॉलर के मूल्यों को फ़िल्टर करना