जैसा कि आप शायद जानते हैं, Xdebug ने 2. * संस्करण के बाद से मेमोरी प्रोफाइलिंग समर्थन को गिरा दिया। कृपया यहां "हटाए गए कार्यों" स्ट्रिंग की खोज करें: http://www.xdebug.org/updates.php
निकाले गए कार्य
मेमोरी प्रोफाइलिंग के लिए हटाए गए समर्थन को ठीक से काम नहीं किया।
इसलिए मैंने एक और उपकरण की कोशिश की है और यह मेरे लिए अच्छा काम करता है।
https://github.com/arnaud-lb/php-memory-profiler
इसे मैंने अपने Ubuntu सर्वर पर सक्षम करने के लिए किया है:
sudo apt-get install libjudy-dev libjudydebian1
sudo pecl install memprof
echo "extension=memprof.so" > /etc/php5/mods-available/memprof.ini
sudo php5enmod memprof
service apache2 restart
और फिर मेरे कोड में:
<?php
memprof_enable();
// do your stuff
memprof_dump_callgrind(fopen("/tmp/callgrind.out", "w"));
अंत में KCachegrind केcallgrind.out
साथ फाइल खोलें
Google gperftools का उपयोग करना (अनुशंसित!)
सबसे पहले यहाँ नवीनतम पैकेज डाउनलोड करके Google gperftools स्थापित करें: https://code.google.com/p/gperftools/
फिर हमेशा की तरह:
sudo apt-get update
sudo apt-get install libunwind-dev -y
./configure
make
make install
अब आपके कोड में:
memprof_enable();
// do your magic
memprof_dump_pprof(fopen("/tmp/profile.heap", "w"));
फिर अपना टर्मिनल खोलें और लॉन्च करें:
pprof --web /tmp/profile.heap
नीचे दिखाए गए जैसे कुछ के साथ आपके मौजूदा ब्राउज़र सत्र में pprof एक नई विंडो बनाएगा:
Xhprof + Xhgui (cpu और मेमोरी दोनों को प्रोफाइल करने के लिए मेरी राय में सबसे अच्छा)
साथ Xhprof और Xhgui तुम भी या सिर्फ स्मृति उपयोग cpu उपयोग प्रोफ़ाइल सकता है अगर उस समय आपके मुद्दा है। यह एक बहुत ही पूर्ण समाधान है, यह आपको पूर्ण नियंत्रण देता है और लॉग को मोंगो या फाइलसिस्टम पर लिखा जा सकता है।
अधिक जानकारी के लिए मेरा जवाब यहां देखें ।
तंबाकू से होने वाली बीमारी
Blackfire SensioLabs द्वारा एक PHP प्रोफाइलर है, सिम्फनी 2 लोग https://blackfire.io/
यदि आप अपने वर्चुअल मशीन को सेट करने के लिए प्यूपेट का उपयोग करते हैं, तो आपको यह जानकर खुशी होगी कि यह समर्थित है ;-)