2011-05-09 9 views
5

विकिपीडिया से:PHP गतिवर्धक समय संकलन में बनाम बस

अधिकांश PHP गतिवर्धकों पीएचपी लिपियों के संकलित बाईटकोड कैशिंग पार्स की भूमि के ऊपर से बचने के लिए और प्रत्येक अनुरोध पर स्रोत कोड संकलन के द्वारा काम (कुछ या सभी जिनमें से कभी भी निष्पादित नहीं किया जा सकता है)। पर प्रदर्शन में सुधार करने के लिए, कैश्ड कोड साझा मेमोरी में संग्रहीत किया जाता है और धीमी डिस्क पढ़ने और रनटाइम पर स्मृति प्रतिलिपि की मात्रा को कम करने के लिए सीधे वहां से निष्पादित किया जाता है।

बस समय संकलन में:

JIT संकलक, एक संकर दृष्टिकोण का प्रतिनिधित्व अनुवाद होने वाली लगातार, दुभाषियों के साथ के रूप में साथ है, लेकिन अनुवाद कोड की कैशिंग के साथ प्रदर्शन में ख़राबी को कम करने। इस तरह के एपीसी पीएचपी पर के रूप में

PHP गतिवर्धकों तो उपयोग कर रहा है के साथ प्रदर्शन की दिशा में बराबर निहितार्थ है "बस-इन-टाइम" पीएचपी संकलन (यह सोचते हैं कि ऐसा करना संभव है) .... वास्तव में वे वास्तव में हैं वही चीज? इस तरह के एपीसी पीएचपी पर के रूप में

उत्तर

5

PHP गतिवर्धकों तो उपयोग कर रहा है के साथ प्रदर्शन की दिशा में बराबर निहितार्थ है "बस-इन-टाइम" पीएचपी संकलन (यह सोचते हैं कि ऐसा करना संभव है) .... वास्तव में वे वास्तव में हैं वही चीज?

वही अवधारणा, विभिन्न निष्पादन।

जब JIT सबसे हलकों में की बोली जाती है, यह देशी बाईटकोड में आभासी मशीन बाईटकोड संकलन को दर्शाता है। उदाहरण के लिए, फेसबुक का HHVM एक PHP कार्यान्वयन है जो JIT engine का उपयोग करता है।

हालांकि, PHP की मूल आभासी मशीन देशी बाइटकोड में जेआईटी नहीं करती है। वास्तव में, यह पारंपरिक अर्थ में जेआईटी नहीं करता है। जबकि पूरी फाइलें PHP बाइटकोड पर मांग पर संकलित की गई हैं, यह वास्तव में जेआईटी नहीं है।

"PHP त्वरक" शब्द से सावधान रहें। PHP4 दिनों में, PHP पार्सर द्वारा बनाए गए बाइटकोड को बेहतर प्रदर्शन प्राप्त करने के लिए थोड़ा सा अनुकूलित किया जा सकता है। PHP5 के शुरुआती दिनों से इसकी आवश्यकता नहीं है। केवल चीज जो एपीसी, ज़ेंड "ऑप्टिमाइज़र" और अन्य "त्वरक" उत्पाद PHP प्रदर्शन बढ़ाने के लिए करते हैं कैश बाइटकोड है। अस्पष्टता को दूर करने के लिए शब्द "त्वरक" का उपयोग नहीं किया जाना चाहिए।

यदि आप मानक PHP का उपयोग कर रहे हैं, तो आप करें एक बाइटकोड कैश चाहते हैं, केवल उत्पादों के स्पष्ट स्टीयर करें कि वे PHP बाइटकोड अनुकूलन करने का प्रयास करते हैं।

+0

मुझे पता है कि पुरानी पोस्ट है, और शायद चीजें बदल गई हैं, लेकिन ज़ेंड ऑप्टिमाइज़र + वास्तव में कोड को अनुकूलित करता है। उद्धरण: "इसके अतिरिक्त, यह कुछ बाइटकोड अनुकूलन पैटर्न लागू करता है जो कोड निष्पादन को तेज़ी से बनाते हैं।" https://github.com/zend-dev/ZendOptimizerPlus/ – XzKto

+0

हाँ, यह बस होता है कि उन अनुकूलन ने PHP4 में बहुत अधिक * * * बड़ा अंतर बनाया है। अब यह [मूल वितरण में शामिल करने के लिए प्रस्तावित] है (https://wiki.php.net/rfc/optimizerplus), यह देखना दिलचस्प होगा कि बाइटकोड अनुकूलन कोई फर्क पड़ता है या नहीं। – Charles

+1

जून तक, फेसबुक एक PHP जेट कंपाइलर जारी करने के रूप में https://github.com/facebook/hiphop-php – Steven

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