2012-01-10 18 views
6

वर्तमान में, मैं xdebug profiler & KCacheGrind का उपयोग कर रहा हूं। लेकिन GallGrind प्रारूप पूर्ण कॉल ट्रेस की दुकान नहीं है, सिर्फ माता-पिता बच्चे को कॉल निशान (मैं क्या बात कर रहा हूँ के लिए Kcachegrind/callgrind is inaccurate for dispatcher functions? को देखो।)'पूर्ण बैकट्रस विज़ुअलाइज़ेशन' वाले PHP के लिए 'विज़ुअलाइज़ेशन वाला प्रोफाइलर'?

वहाँ पूर्ण पश्व-अनुरेखन दृश्य के साथ दृश्य के साथ एक प्रोफाइलर के लिए उपलब्ध है पीएचपी?

मैं

  • PHP Quick Profiler पर ध्यान दिया है: लेकिन, यह बहुत अधिक कोड जोड़े जाने के लिए और कोई दृश्य की आवश्यकता है।
  • phpCallGraph: इसका सबसे हालिया संस्करण 200 9-08-06 (ref) पर संशोधित किया गया है।
+0

उत्तर भी जानना अच्छा लगेगा। मैं वर्तमान में एक ही उपकरण का उपयोग करता हूं और वे सुधार के लिए उत्सुक हैं। –

+1

@ श्री-स्क सहमत हुए। Http://particletree.com/features/php-quick-profiler/ पर एक नज़र डालें। लेकिन कोई विज़ुअलाइज़ेशन टूल नहीं। – ThinkingMonkey

+0

दिलचस्प, ठंडा, इसे एक नज़र देगा। X12prof सिफारिश के लिए –

उत्तर

3

मुझे कुछ महीने पहले पिछली परियोजना के लिए कुछ प्रमुख PHP प्रोफाइलिंग करना पड़ा था।

सबसे अच्छा विकल्प मैं खोजने में सक्षम था xhprofxhprof-ui के साथ।

कैसे यहाँ उन दोनों को स्थापित करने के लिए के बारे में पढ़ें:

http://blog.preinheimer.com/index.php?/archives/355-A-GUI-for-XHProf.html

कुछ पेशेवरों:

  • इंटरफ़ेस
  • डेटाबेस बैकएंड उपयोग करने के लिए पिछले रूपरेखा सत्र को बचाने के लिए
  • अच्छा आसान कॉलग्राफ
+0

+1, हालांकि यह xdebug के प्रोफाइलर –

+0

की तुलना में उपयोग करने के लिए काफी अलग है, लेकिन ऐसा लगता है कि यह कॉलट्रैक के लिए कोई विज़ुअलाइजेशन टूल नहीं है। हालांकि इसे सुझाव देने के लिए +1। – ThinkingMonkey

+0

_I सही किया गया _। Xprof भयानक लग रहा है। – ThinkingMonkey

1

यदि आप केवल प्रोफाइलर आउटपुट देखना चाहते हैं, तो यह एक बात है। यदि आप अपना कोड अनुकूलित करने का प्रयास कर रहे हैं, तो this method को न भूलें। मुझे पता है कि आप इसे xdebug में कर सकते हैं।

यह एक बहुत ही सरल विचार पर आधारित है। मान लीजिए कि आपका प्रोग्राम इसकी आवश्यकता से अधिक कर रहा है, इसलिए इसे तेज किया जा सकता है। वास्तव में, तर्क के लिए, यह 9 गुना अधिक करने की आवश्यकता है, इसलिए पूरी तरह से अगर इसे 1 सेकंड लेना चाहिए तो यह वास्तव में 10 ले रहा है। उन 9 सेकंड अनावश्यक काम में पूरी तरह मिश्रित हो सकता है या नहीं , चीनी और आटा की तरह।

ठीक है, उन 10 सेकंड के दौरान, आपने बस इसे रोकने के लिए^सी दबाया, और फिर आप ध्यान से देखते हैं कि यह उस समय क्या कर रहा था।

क्या यह संभावना है कि आपने इसे अपर्याप्त चीज़ कर पकड़ा? असल में, यह बहुत ही संभावना है कि आप बर्बाद करने वाली चीज़ को पकड़ते हैं।

यदि आप सुनिश्चित नहीं हैं, तो बस दोहराएं।

बर्बादी उतनी बड़ी नहीं होनी चाहिए। असल में, यदि आप इसे इस तरह रोकते रहते हैं, जैसे ही आप इसे पर से अधिक अवसर पर देखते हैं, अगर ऐसा कुछ है जिसे आप छुटकारा पा सकते हैं, तो आपको एक अच्छी गति, गारंटी मिलेगी।

उदाहरण के लिए, यदि आप इसे 5 बार रोकते हैं, और आप इसे कुछ करते हैं तो इसे वास्तव में उन अवसरों पर 2 नहीं करना पड़ता है, आप कितना बचा सकते हैं? आपको बिल्कुल पता नहीं है, लेकिन यह लगभग 40% होगा। यह 20% जितना छोटा हो सकता है। यह 60% जितना आसानी से हो सकता है। तो आप नहीं जानते कि यह कितना बचाएगा, लेकिन आप केवल सोने के गले को फेंक नहीं देते क्योंकि आप निश्चित नहीं हैं कि इसका वजन कितना है।

अंत में, प्रोफाइलर को कोई समस्या नहीं है कि यह नहीं मिलेगा। बातचीत सच नहीं है।

+0

:) स्माइली क्योंकि, मैं प्रोग्रामिंग शुरू करने के समय से यही कर रहा हूं। यह प्रोफाइलर के साथ मेरा पहला समय है। – ThinkingMonkey

+0

@ थिंक: हे। सुन के अच्छा लगा। यदि आपके पास प्रोफाइलर के साथ बेहतर भाग्य है, तो मुझे बताएं। –

+0

प्रोफाइलर से कुछ भी विशेष मदद नहीं। लेकिन, (मैं बहुत अनुपस्थित हूं और कभी-कभी देखता हूं) इससे मुझे कुछ फ़ंक्शन कॉल पर ध्यान देने में मदद मिली, जिसकी आवश्यकता नहीं थी। और जब मैंने ऑप्टिमाइज़ेशन किया था (कैश का उपयोग करने के लिए) को हटा दिया गया था। – ThinkingMonkey

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