PHP एक साझा कुछ नहीं वास्तुकला है। इसके फायदे और नुकसान हैं।
एक नुकसान यह है कि ऐसा कुछ करना आसान नहीं है। ऐसा कोई राज्य नहीं है जिसे कहीं संग्रहीत किया जा सके।
मैंने कुछ त्वरित परीक्षण किए और जब लॉग इन किया, तो यह बूस्टप्रॉप कुल समय का ~ 17% लगता है और 50% से अधिक वास्तव में सभी .module और .inc फ़ाइलों को लोड कर रहा है। यह कुछ ऐसा नहीं है जिसे आप मेमेचे में स्टोर कर सकते हैं। इसके अलावा, अगर मैं मेमेचे या डेटाबेस कैश का उपयोग करता हूं, तो यह ज्यादा मायने नहीं रखता है।
पेज कैश सक्षम होने पर मैंने कुछ परिणाम प्राप्त करने की कोशिश की, लेकिन Xhprof को तब विश्वसनीय परिणाम वापस नहीं आते हैं; पूरी बात बस बहुत तेज़ लगती है। लेकिन फिर भी, सबसे बड़े हिस्से में इनिट / एग्जिट हुक निष्पादित करना और इसे लोड करने वाली फ़ाइलों को शामिल करना शामिल है। मुझे वहां एक दिलचस्प मुद्दा मिला: ऐसा लगता है कि उपयोगकर्ता मॉड्यूल गंभीरता से कैश्ड पृष्ठ प्रतिक्रिया को धीमा कर रहा है क्योंकि यह .module फ़ाइल में इकाई नियंत्रक के कारण रजिस्ट्री को ट्रिगर करता है।
उस ने कहा, डेविड स्ट्रॉस ने कोपेनहेगन में कुछ प्रायोगिक काम दिखाया, जहां उन्होंने बूटस्ट्रैपिंग के बाद एक मेमोरी स्नैपशॉट बनाया और फिर पृष्ठ की सेवा के बाद वापस आ गया। उन्होंने उसके लिए ड्रुपल 6 का इस्तेमाल किया। उपरोक्त संख्याओं को देखने के बाद, मुझे लगता है कि ड्रुपल 7 में ऐसा करने का प्रदर्शन लाभ काफी छोटा होगा। इसका एक कारण यह है कि डेटाबेस कनेक्शन आलसी लोडेड है (और पहले क्वेरी को निष्पादित करने की आवश्यकता होने से पहले आप उदाहरण के लिए मेकचे का उपयोग करते समय बूटस्ट्रैप में काफी दूर निकल सकते हैं) और बहुत कुछ है जो कैश्ड है।
Drupal 7 में वास्तव में क्या बुरा है, इन विशाल सरणियों और अंतहीन रिकर्स और छोरों के साथ रेंडर परत है। यह एक बहुत ड्रुपाल 7 में चला गया है कि सभी प्रदर्शन कार्य को पूर्ववत करता है। आइए देखें कि ड्रुपल 8 में यह कैसा दिखता है, अगर ट्विग इसे कोर में बनाता है।
अंत में, उल्लिखित फायदों के बारे में। एक बड़ा लाभ यह है कि मेमोरी लीक्स अप्रासंगिक हैं क्योंकि प्रत्येक अनुरोध के बाद सब कुछ मुक्त हो जाता है। मैंने कई जावा अनुप्रयोगों को देखा है जहां मेमोरी का उपयोग लगातार बढ़ता है और नियमित पुनरारंभ की आवश्यकता होती है।