2008-08-16 7 views
16

क्या किसी के पास PHP त्वरक जैसे MMCache या Zend Accelerator के साथ काम करने का अनुभव है? मैं जानना चाहता हूं कि इनमें से किसी एक का उपयोग PHP को तेज़ वेब-टेक्नोलॉजी के साथ तुलनीय बनाता है। इसके अलावा, क्या इनका उपयोग करने के लिए व्यापार बंद हैं?संकलित PHP?

+2

आपको शीर्षक को "त्वरित PHP" में बदलना चाहिए। यह कंपाइलर्स के बारे में बिल्कुल नहीं है, हालांकि PHP को संकलित करने के बारे में कई सवाल हैं। –

उत्तर

13

ध्यान दें कि ज़ेंड ऑप्टिमाइज़र और एमएमसीएच (या समान अनुप्रयोग) पूरी तरह से अलग-अलग चीजें हैं। जबकि ज़ेंड ऑप्टिमाइज़र प्रोग्राम ओपोड को अनुकूलित करने का प्रयास करता है एमएमसीएश स्मृति में स्क्रिप्ट को कैश करेगा और प्रीकंपिल्ड कोड का पुन: उपयोग करेगा।

मैंने कुछ समय पहले कुछ बेंचमार्क किए थे और आप मेरे ब्लॉग में (0 जर्मन में) results पा सकते हैं।मूल परिणाम:

अकेले ज़ेंड ऑप्टिमाइज़र बिल्कुल मदद नहीं करता था। असल में मेरी स्क्रिप्ट ऑप्टिमाइज़र के मुकाबले धीमी थीं।

यह कैश की बात आती है: * सबसे तेजी से: eAccelerator * XCache * APC

और: आप एक opcode कैश स्थापित करना चाहते हैं!

उदाहरण के लिए: alt text http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

इस अवधि में यह वर्डप्रेस मुखपृष्ठ 10.000 बार फोन करने के लिए ले लिया है।

संपादित करें: बीटीडब्ल्यू, ई एक्सेलेरेटर में एक अनुकूलक स्वयं होता है।

2

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

बीटीडब्ल्यू एमएम कैश अब एक अलग परियोजना में घुमाया गया है, मैं नाम भूल गया लेकिन Google आपको बताएगा।

3

दोनों दिलचस्प हैं और गति वृद्धि प्रदान करेंगे क्योंकि वे स्रोत कोड को द्विआधारी प्रतिनिधित्व में संकलित करते हैं जिसे PHP इंजन द्वारा निष्पादित किया जाता है।

PHP के साथ चल रही कोई भी बड़ी वेबसाइट (उदाहरण के लिए फेसबुक) एमएमसीएच जैसे कुछ प्रकार के ऑपोड कैश सिस्टम चला रही है।

समस्या यह है कि वे आपके सिस्टम के आधार पर सेट अप करना बहुत आसान नहीं हैं।

5

एमएमसीएचक को हटा दिया गया है। मैं या तो http://pecl.php.net/package/APC या http://xcache.lighttpd.net/ की सिफारिश करता हूं, जिनमें से दोनों आपको परिवर्तनीय भंडारण (जैसे मेमकेचे) भी देते हैं।

0

क्या आपने फालेंजर की जांच की है? यह PHP को .NET कोड में संकलित करता है। यहां some benchmarks हैं जो दिखाते हैं कि यह प्रदर्शन में नाटकीय रूप से सुधार कर सकता है।

+0

आगे बेंचमार्क: http://www.php-compiler.net/benchmarks – Eldros

0

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

नीचे की तरफ, हमने निश्चित रूप से कुछ कैशिंग मुद्दों को देखा (जहां कोड बदल जाएगा, लेकिन एक कारण या किसी अन्य कारण के लिए संकलित संस्करण सिंक)। मुझे लगता है कि उन समस्याओं की संभावना अब तक खत्म हो गई है।

वैसे भी, मेरे पास कोई कठोर तुलना संख्या नहीं है, और निश्चित रूप से तुलना के लिए अलग-अलग वातावरण में एक ही सिस्टम नहीं लिखा है, लेकिन अधिकांश प्रणालियों के लिए, PHP आपको प्रदर्शन के अनुसार मारने वाला नहीं है।

2

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

1

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

1

मैं एपीसी का उपयोग करता हूं, और यह प्रमाणित कर सकता हूं कि यदि आप उच्च कैश-हिट दर बनाए रखते हैं तो यह ऐप सर्वर पर सीपीयू और आई/ओ लोड को नाटकीय रूप से कम कर सकता है। यह न केवल आपको संकलित करने से बचाता है, यह आपको डिस्क से php फ़ाइलों को पढ़ने से बचा सकता है। (यानी बाइटकोड सीधे मुख्य मेमोरी से परोसे जाते हैं, इसलिए यह बहुत तेज़ है) यह एक पृष्ठ को प्रस्तुत करने की गति को कम करता है, और आपके सर्वर को प्रति सेकंड अनुरोधों को बढ़ाता है।

आप RedHat या CentOS उपयोग करते हैं, एपीसी को स्थापित करने से सुपर आसान है:

yum install php-devel httpd-devel php-pear 
pecl install apc 
echo "extension=apc.so" > /etc/php.d/apc.ini 
# if you're using SELinux: 
chcon "system_u:object_r:textrel_shlib_t" /usr/lib/php/modules/apc.so 
/etc/init.d/httpd restart 

आप कमियां के बारे में पूछा। केवल नकारात्मक पक्ष यह है कि इसे कुछ स्मृति की आवश्यकता है। एपीसी पर डिफ़ॉल्ट 30 एमबी है, लेकिन इसे समायोजित किया जा सकता है, और थोड़ी सी मेमोरी की लागत बढ़ी हुई गति और प्रतिक्रिया दर के साथ खुद के लिए भुगतान करने से अधिक है।

1

ब्लैम के परीक्षण में वर्डप्रेस द्वारा बनाई गई सभी डीबी कॉल शामिल हैं। जब आप कम डीबी कॉल कर रहे हों, तो आप देखेंगे कि ऑपोड कैश का प्रदर्शन लाभ और भी नाटकीय होगा।

+0

सहमत हुए। मेरे पास कुछ और परीक्षण भी थे। लेकिन मैंने एक "असली दुनिया" उदाहरण के लिए जाने का फैसला किया;) – BlaM

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