2011-11-10 4 views
31

मैंने पहले से ही अपने XAMPP स्थापना में xDebug प्रोफाइलिंग सक्षम की है और यह ठीक काम करता है।क्या मैं विशिष्ट स्थान पर प्रोफाइलिंग शुरू करने के लिए xdebug प्रोफाइलर पर मैन्युअल रूप से कह सकता हूं?

अब मैं पूछना चाहता हूं कि xDebug के साथ प्रोफाइलिंग शुरू करने के लिए मेरे स्रोत कोड के भीतर से कहने का कोई तरीका है या नहीं।

अधिक विशिष्ट, मैं एक वर्डप्रेस प्लगइन बनाना चाहता हूं, और मैं कहना चाहूंगा, प्लगइन के प्रारंभ बिंदु से प्रोफाइलिंग शुरू करें और प्लगइन के अंत बिंदु पर प्रोफाइलिंग रोकें।

क्या यह संभव है?

नोट: उपर्युक्त सिर्फ एक उदाहरण है। यह एक केकेपीएचपी प्लगइन या एक नया PHP क्लास हो सकता है जिसे मुझे

उत्तर

46

संपादित करें: प्रति How to Turn On/Off Xdebug Profiling at Runtime? पर आप वास्तव में रनटाइम पर सक्षम/अक्षम नहीं कर सकते (उदाहरण के लिए प्रति फ़ंक्शन कॉल)।

आप प्रति अनुरोध प्रोफाइलर को चुनिंदा रूप से सक्षम कर सकते हैं, जो आमतौर पर बेहतर होता है।

xdebug.profiler_enable_trigger=1 
xdebug.profiler_enable=0 

ध्यान दें कि हम प्रोफाइलर को अक्षम करें और केवल ट्रिगर सक्षम: इस व्यवहार उन सेटिंग्स निर्धारित लक्ष्य को हासिल करने। आपके ब्राउज़र पास XDEBUG_PROFILE से = 1

http://example.com/file.php?XDEBUG_PROFILE=1 

तुम भी पोस्ट या कुकी में इस पैरामीटर पारित कर सकते हैं। अधिक जानकारी के लिए जाँच

  1. http://xdebug.org/docs/profiler#starting
  2. http://xdebug.org/docs/all_settings#profiler_enable_trigger
+2

के रूप में यह वास्तव में इस सवाल का जवाब नहीं है कि मैं इस सवाल का जवाब downvoted गए हैं। मैंने प्रश्न को पढ़ा है क्योंकि प्रोफाइलर को php में गतिशील रूप से चालू और बंद करना है, जिससे पूरे कोड के बजाय विशिष्ट कोड को प्रोफाइल किया जा सकता है। –

+5

रनटाइम पर चालू/बंद टॉगल करने में असमर्थता का स्पष्ट रूप से उल्लेख करने के लिए उपरोक्त - और यह भी क्योंकि यह उत्तर वास्तव में प्रश्न शीर्षक का उत्तर देता है, जिसे मैंने खोजा था। – xiankai

+1

उपरोक्त, क्योंकि मेरे सामने मौजूद व्यक्ति की तरह, यह उत्तर प्रश्न का उत्तर देता है। जानकारी और सही उत्तर के लिए धन्यवाद। –

4

Laith द्वारा कहा गया है, आप का चयन नहीं कर सकते हैं जब आप Xdebug रूपरेखा शुरू करने के लिए चाहते हैं और आप उसे बंद करना चाहते हैं जब। लेकिन, एक और xDebug सुविधा इस प्रकार की लचीलापन प्रदान करती है: ट्रेस।

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

पता करना शुरू करने के लिए, आप इस सुविधा का उपयोग करने के लिए है: xdebug_start_trace()

अनुरेखण रोकने के लिए, आप इस सुविधा का उपयोग करने के लिए है: xdebug_stop_trace()

काफी सेटिंग को बदलने के लिए उपयोग कर सकते का एक बहुत है ट्रेस के व्यवहार:

http://xdebug.org/docs/execution_trace

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

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