मैं ज़ेंड फ्रेमवर्क 1.11, सिद्धांत 2, कुछ सिम्फनी 2 componenents और अन्य उपकरण & पुस्तकालयों के साथ एक परियोजना पर काम कर रहा हूं।मेरे प्रदर्शन को अनुकूलित करें
मैं Xdebug & वेबग्रिंड का उपयोग करके प्रदर्शन को अनुकूलित करने का प्रयास कर रहा हूं।
मुझे पहले से ही कुछ बाधाएं मिली हैं जैसे पाइरिंग इनआई कॉन्फ़िगर, आदि .. और उसे कैश किया गया।
अब, मैं सिर्फ पता है कि autoloading अपने आवेदन की सबसे महंगी हिस्सा है:
Opl\Autoloader\ApcLoader->loadClass 274 31.36 43.86
Zend_Loader_PluginLoader->load 150 4.80 12.29
Zend_Loader_Autoloader->getClassAutoloaders 278 1.42 1.91
Zend_Controller_Router_Route_Regex->_getMappedValues 291 1.29 1.35
Doctrine\ORM\UnitOfWork->createEntity 85 1.24 3.18
आप मैं डिफ़ॉल्ट Zend_Loader_Autoloader
का उपयोग नहीं कर रहा हूँ, मैं Opl
है जो उपयोग कर रहा हूँ देख सकते हैं, के रूप में अब तक मुझे पता है, इससे तेज, मैं एपीसी कैश के साथ classMapLoader
का उपयोग कर रहा हूं लेकिन यह अभी भी शेष एप्लिकेशन की तुलना में थोड़ा धीमा है।
मैं इसे कैसे अनुकूलित कर सकता हूं?
मेरे पास लगभग 250 वर्ग लोड हैं, और ऐसा लगता है कि केवल ~ 40 धीमे हैं, अन्य लोग 0,00 को "कुल कॉल लागत" के रूप में दिखाते हैं लेकिन अन्य आवश्यकता कॉल पर 0,08 से 0,57 तक बढ़ रहे हैं।
वैसे, ओपीएल ऑटोलोडर का उपयोग करने के बाद, ऐसा लगता है कि मेरे उत्पादन वातावरण पर एपीसी केवल ओपोड फ़ाइल को "मैन्युअल रूप से आवश्यक" है जिसे ऑटोलोडर द्वारा बुलाया जाता है।
आपका महान उत्तर धन्यवाद, असल में मेरी समस्या है कि मैं पुराने फैशन एप्लिकेशन से ZF1.7 और Zend_Db और इसके लेनदेन के साथ माइग्रेट हो गया हूं दर (घेराबंदी द्वारा दी गई) कुछ 30/40/एस की तरह लौटाती है जहां मेरा केवल 10 है, हालांकि मैंने कई अनुकूलन किए हैं जैसे क्वेरी ऑप्टिमाइज़ेशन जो वैश्विक स्तर पर अनुरोध समय को कम करता है लेकिन मैं इस तरह की दर के लिए थोड़ा निराश हूं। निश्चित रूप से नए हार्डवेयर को खरीदने का एक समाधान है, और यह होगा लेकिन मैं नहीं चाहता कि यह समाधान हो। ऑटोलोडर को देखते समय, ऐसा लगता है कि डॉक्टर को ज़ेंड फ्रेमवर्क की तुलना में अधिक फ़ाइल की आवश्यकता होती है। – Trent
विचार करें कि क्या आपको वास्तव में अपने आवेदन में ओआरएम की आवश्यकता है। यदि आप नहीं करते हैं, तो सिद्धांत छोड़ें और * तालिका डेटा गेटवे * या * पंक्ति डेटा गेटवे * ज़ेंड लाइब्रेरी ऑफ़र का उपयोग करें। या पीडीओ में PHP देशी mysql ड्राइवर के साथ बस अपने स्वयं के डीबी abstraction के लिए चिपके रहें। यदि डेटाबेस आपकी बाधा है, तो छोटे कोड के लिए अपना कोड और डेटाबेस एक साथ लाएं। यह ओआरएम ऑफ़र के कुछ आराम विकल्पों को कम कर सकता है, लेकिन आप माइस्क्ल स्टोरेज में डेटा लाने और पुश करने के लिए अपना स्वयं का फ़ंक्शन बनाकर अपना स्वयं का आराम कर सकते हैं। – hakre
मुझे सभी प्रकार की चीजें छोड़ने के सुझाव पसंद हैं (यानी हल्का)। मुझे सुझाव नहीं है कि "बेहतर हार्डवेयर खरीदना। यह स्वचालित रूप से आपके कोड को अनुकूलित करेगा"। ऐसा लगता है कि जॉकी की वसा बहुत तेज है, तो तेज घोड़ा प्राप्त करें। चिप विक्रेताओं पर कड़ी मेहनत करने वाले इंजीनियरों ने हमें कभी भी तेज हार्डवेयर देने के लिए अद्भुत काम किया है। मुझे आश्चर्य है कि क्या वे जानते हैं कि प्रोग्रामर उस पर भरोसा कर रहे हैं, बजाय उनके कोड से वसा प्राप्त करने के बजाय? –