2015-10-13 7 views
10

Xdebug द्वारा बनाई गई प्रोफाइल लॉग देखने के लिए मैं qcachegrind का उपयोग कर रहा हूं। मैं फ़ाइल को ठीक देख सकता हूं, लेकिन मुझे कोई संकेत नहीं है कि मैं क्या देख रहा हूं।मैं qcachegrind के UI को कैसे पढ़ूं?

मैंने Google की कोशिश की है, लेकिन मैं सिर्फ इंस्टॉलेशन ट्यूटोरियल प्राप्त कर रहा हूं, डिस्प्ले को समझने के तरीके के बारे में कुछ भी नहीं।

  1. क्या नीचे qcachegrind प्रदर्शन मुझे मेरे आवेदन
  2. के बारे में बता करता है वहाँ कुछ भी अधिक मैं इस फ़ाइल से देख सकते हैं, या यह उपलब्ध डेटा के सभी है?

qcachegrind की तरह (कृपया छवि नए टैब में एक बेहतर दृश्य के खोलने)


enter image description here

+0

क्या आपको qCacheGrind के लिए कोई उपयोगी दस्तावेज मिला है जिसे आप साझा कर सकते हैं? –

+0

@KimberlyW दुर्भाग्यवश, नहीं, मैंने कभी नहीं किया। – DelightedD0D

+1

@ किम्बर्लीडब्ल्यू मैं एक साल से अधिक इंतजार कर रहा था, ऐसा लगता है कि आप 8 दिनों के साथ भाग्यशाली हैं, टॉम ने अभी एक उत्तर जोड़ा है जो इसे बहुत अच्छी तरह से बताता है – DelightedD0D

उत्तर

10

उपकरण और kcachegrind Xdebug पीएचपी प्रोफाइलर के उत्पादन में कल्पना। प्रोफाइलर का आउटपुट व्यावहारिक रूप से सभी प्रारंभिक समय, निष्पादन समय और पदानुक्रम के साथ सभी PHP फ़ंक्शन कॉल का लॉग है।

एक ठेठ दृश्य निम्न चित्र में दिखाया गया है:

Laravel App

बाईं ओर 'फ्लैट' प्रोफ़ाइल है। यह कम से कम समय लेने वाली अधिकांश समय से सभी व्यक्तिगत फ़ंक्शन कॉल सूचीबद्ध करता है। 'सहित' कॉलम कैली सहित समारोह द्वारा खपत का समय दिखाता है। 'सेल्फ' कॉलम कॉलियों को छोड़कर फ़ंक्शन द्वारा बिताए गए समय को दिखाता है। 'कॉल किया गया' और 'फ़ंक्शन' कॉलम क्रमशः फ़ंक्शन के नाम और फ़ंक्शन का नाम (प्लस नेमस्पेस) की संख्या दिखाता है।

दाईं तरफ, कॉलर्स और कैलीज़ को देखने के लिए विभिन्न विचार उपलब्ध हैं। कॉलर्स और कैलीज बाईं तरफ चुने गए फ़ंक्शन से मेल खाते हैं।

शीर्ष पर मेरे स्क्रीनशॉट में, 'कैली मानचित्र' खोला गया है। प्रत्येक आयताकार चयनित फ़ंक्शन (एक कैली) के भीतर फ़ंक्शन कॉल होता है और प्रत्येक आयत कैली का एक कैली है। आकार रिश्तेदार 'इनक्ल' से मेल खाता है। पहर।

नीचे, 'ऑल कैलीज' दृश्य आपके द्वारा चुनी गई संपत्ति द्वारा चयनित फ़ंक्शन ऑर्डर के कॉलिज़ दिखाता है।

एक अधिक विस्तृत दृश्य के नीचे दिखाया गया है:

Callers and callees

इस 'स्व' को समय पर हल कर एक Laravel डेटाबेस समारोह के एक समारोह है। आप स्पष्ट रूप से देखते हैं कि विभिन्न फ़ंक्शन कॉल कैसे संबंधित होते हैं और अधिकतर फ़ंक्शन कितना समय लेता है: PDOStatement :: execute। यह कोई आश्चर्य की बात नहीं है क्योंकि यह एक ऐसा कार्य है जो बाहरी डेटाबेस से जुड़ता है, इसे पूछताछ करता है और परिणाम की प्रतीक्षा करता है।

अपने मूल स्क्रीनशॉट पर वापस जाएं। यह आपको बताता है कि आपके एप्लिकेशन ने PHP के session_start फ़ंक्शन में बहुत अधिक समय (बहुत अधिक रास्ता) बिताया। यह 99.8% स्व समय द्वारा दिखाया गया है।

+0

प्रमुख समय को कोई इकाई नहीं दी गई है। क्या आप मुझे इकाइयों को बता सकते हैं? क्या यह माइक्रो सेकेंड या मिनी सेकेंड है। इनक्ल और सेल्फ कॉलम के तहत। –

+1

1 इकाई एक दूसरे (https://xdebug.org/docs/profiler), a.k.a. 1 microsecond (us, μs) का 1/1.000.000th है। आप रिश्तेदार और पूर्ण समय के बीच चयन कर सकते हैं। –

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