2009-12-21 11 views
9

चौखटे के एक नंबर कक्षाएं गतिशील लोड हो रहा है (अर्थात नियंत्रकों और मॉडल) के लिए spl_autoload_register() का उपयोग करें। ऑटोलोडिंग और ऑपोड कैशिंग के मुद्दे पर कुछ पोस्ट हैं।PHP5 फ़्रेमवर्क: Autoloading और Opcode कैशिंग

वहाँ प्रकट नहीं होता है: विशेष रूप से एक पद @cletus जो @Rasmus जो एपीसी एक opcode कैश के रूप में उपयोग करने वालों के लिए बेस्वाद साबित बयान के एक नंबर बनाने का संदर्भ द्वारा एक प्रतिक्रिया है ऑटोलोडिंग के किसी भी संभावित विकल्प के रूप में कोई चर्चा होने के लिए जो ओपोड कैश प्रदर्शन को प्रभावित नहीं करता है।

क्या इस तथ्य को हल करने का कोई तरीका है कि ऑटोलोडेड कक्षाएं बाइट कोड कैश में नहीं जुड़ती हैं?

यदि नहीं, तो क्या गतिशील रूप से कक्षाओं को लोड करने के लिए कोई वैकल्पिक तरीका है जो कैश हो जाएंगे?

+4

, ऑटो लोड कक्षाएं एपीसी द्वारा इसे साफ़ कर दिया। – jldupont

+0

@jldupont - मैंने अभी एक विशिष्ट प्रतिक्रिया को संदर्भित करने के लिए अद्यतन किया है जो मुझे इस पोस्ट को लिखने के लिए चिंतित है। –

उत्तर

5

, अभी भी इस विषय के बारे में भ्रम होने के लिए वहाँ लगता है लेकिन ज्यादातर मामलों में यह प्रदर्शन बनाम कम करने के लिए नीचे आता है।

एक अच्छा मेलिंग सूची धागा पढ़ने के लिए Zend फ्रेमवर्क मेलिंग सूची पर यह एक होगा:

http://n4.nabble.com/ZF-and-Autoloading-td640085i20.html

अब, सहसंबंध यहाँ क्योंकि अगर आप से विरासत में नहीं अभी तक परिभाषित वर्ग है , आप इसे परिभाषित करने के लिए (हालांकि आप भी पर भरोसा कर सकते हैं शामिल हैं) autoload पर भरोसा कर सकते हैं, और वास्तव में autoload सुविधा की उपस्थिति आप इस तरह के भाग का उपयोग करने के लिए प्रेरित होंगे। लेकिन इस autoload जो मुसीबत (Ramus ' "यह नहीं है सिर्फ autoload" परेशानी चीजों के कुछ उदाहरण के लिए ब्लॉग में के बाद देखें) लाता है नहीं है। तो सही वाक्यांश "लोग जो ऑटोलोड लोड पर भरोसा करते हैं भी कोड का उपयोग करने के लिए जो संकलन-समय बाध्यकारी को परिभाषित करता है"। autoload गलती, ज़ाहिर है, और बस से परहेज autoload रूप में नहीं देखा जा सकता है कौन सा है कि के साथ एक बिट में मदद नहीं करेगा - तुम भी तो यह है कि संकलन समय बाध्यकारी हो सकता है आपके कोड के पुनर्लेखन के लिए होगा। और उदाहरण के लिए, "नया" के साथ ऑटोलोड के उपयोग से इसका कोई लेना-देना नहीं है।

ऊपर वर्णित प्रभाव से मंदी का सवाल है - यानी, संकलन समय बंधन के अभाव - कोड वास्तव में एक सा opcode कैश को धीमी और कुछ परेशानी के लिए कुछ अस्पष्ट मामलों में ऐसी कोड का कारण बन सकता हो जाता है (autoload मामलों में नहीं है - लेकिन ऐसे मामलों में जहां कक्षाएं अंदर की स्थिति, या, भगवान न करे परिभाषित कर रहे हैं में, अलग अलग परिभाषा स्थिति के आधार पर) बनाया जाता है - लेकिन यह अगले अपने आप में autoload का उपयोग कर के साथ कुछ नहीं करना पड़ता है। (- कुछ नहीं और मैं स्पष्ट होना दोहराने) opcode कैश द्वारा दिए गए प्रदर्शन लाभ के लिए तुलना के अभाव की वजह से - मंदी की राशि, तथापि, बहुत लोगों द्वारा exagerrated हो रहे हैं यह कुछ भी नहीं है डिस्क संचालन और संकलन चरण। आप शायद एक कृत्रिम बेंचमार्क लिख सकते हैं जो कुछ महत्वपूर्ण मंदी दिखाएगा, लेकिन मुझे विश्वास नहीं है कि कोई असली एप्लिकेशन भी नोटिस करेगा।

स्रोत:http://n4.nabble.com/ZF-and-Autoloading-td640085i20.html#a640092

मैं क्या MediaWiki + एपीसी की मेरी दिनों की याद से
+2

[अद्यतन लिंक] (http://osdir.com/ml/php.zend.framework.general/2007-01/msg00132.html) पूर्ण उद्धरण के लिए। – Xeoncross

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