2010-04-26 18 views
11

मैं नियंत्रक कार्रवाई कैसे कर सकता हूं?मैं रूबी पर रूबी में एक अनुरोध कैसे प्रोफाइल कर सकता हूं?

मेरे विचारों में से एक को प्रस्तुत करने में काफी समय लग रहा है, और मैं इसे तोड़ना चाहता हूं। मुझे script/performance/profiler दिखाई देता है, लेकिन ऐसा लगता है कि केवल वैश्विक दायरे तक पहुंच है।

उत्तर

8

ruby-prof जाने का रास्ता है। यहां एक howto, How to profile your Rails and Ruby applications with ruby-prof है।

यदि आप इसे विज़ुअलाइज़ेशन टूल जैसे kcachegrind के संयोजन में उपयोग करते हैं, तो आप फ्रेम कोड से अपना एप्लिकेशन कोड आसानी से अलग कर सकते हैं।

मैंने कुछ समय पहले अपने स्थानीय रूबी-उपयोगकर्ता समूह में इन उपकरणों पर एक बात की थी: Making your rails app kick ass with ruby-prof and kcachegrind

+0

के तहत नहीं है, मैंने यहां दिए गए लिंक में दिए गए निर्देशों का पालन करने का प्रयास किया है, लेकिन पता चला है कि रेल 2.3.2 से शुरू होने वाली 'स्क्रिप्ट/प्रदर्शन/अनुरोध' हटा दी गई थी। –

+0

हां, यह उत्तर रेल -2-विशिष्ट है जैसा कि मैंने इसे 2010 में दिया था। सुनिश्चित नहीं है कि रेल इसे करने का 3 तरीका ... –

+1

चेंजलॉग (http://rails.rubyonrails.org/files/railties/CHANGELOG.html) कहते हैं: प्रदर्शन एकीकरण परीक्षण के पक्ष में स्क्रिप्ट/प्रदर्शन/अनुरोध निकालें। [प्रतीक नाइक] "स्क्रिप्ट/प्रदर्शन/अनुरोध का उपयोग जारी रखने के लिए, request_profiler प्लगइन स्थापित: स्क्रिप्ट/प्लगइन स्थापित Git: //github.com/rails/request_profiler.git" यह जानकारी जोड़ने के लिए –

2

रेल कंसोल पर रूबी आपको दिखाना चाहिए कि कौन सा आंशिक समय प्रस्तुत करने में कुछ समय लग रहा है। यदि यह पर्याप्त नहीं है, तो आप नया अवशेष मणि (https://github.com/newrelic/rpm) इंस्टॉल कर सकते हैं और डेवलपर मोड में इसका उपयोग कर सकते हैं जो आपको क्या हो रहा है इसका एक सिंहावलोकन देगा।

यदि आप Heroku पर तैनात कर रहे हैं तो आप आरपीएम का मुफ्त संस्करण जोड़ सकते हैं जो आपको आपके चल रहे एप्लिकेशन पर समान आंकड़े देगा।

रूबी में एक प्रोफाइलर (http://ruby-prof.rubyforge.org/) है जो आपको मेमोरी उपयोग, कॉल टाइम्स इत्यादि दिखाएगा, लेकिन फ्रेम कोड से आपके कोड को प्रसारित करना मुश्किल हो सकता है।

+0

नया अवशेष आपको थोड़ा और बता सकता है लेकिन इसमें लाइन-बाय-लाइन कोड प्रोफाइलिंग नहीं है जो पूर्ण प्रदर्शन विश्लेषण के लिए आवश्यक है। –

+0

और विंडफ़ो – halfbit

0

मैं यह आप cputime, तरीकों, वस्तु आवंटन या walltime से किसी के लिए एक या एक से अधिक अनुरोध प्रोफ़ाइल दूँगा, और रैक मिडलवेयर के माध्यम से अच्छी तरह से एकीकृत https://github.com/bhb/rack-perftools_profiler

साथ कुछ सफलता मिली है।

संबंधित मुद्दे

 संबंधित मुद्दे