PHP Academy · पाठ

OPcache: बाइटकोड कैशिंग

बार-बार होने वाले स्क्रिप्ट कंपाइलेशन के ओवरहेड को हटाने के लिए OPcache सक्षम और अनुकूलित करें

पाठ 2, कुल 4 में से13 चरण

OPcache: बाइटकोड कैशिंग, CoddyKit पर PHP Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह PHP Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

PHP सामान्य रूप से कैसे काम करता है

OPcache के बिना, हर अनुरोध पर PHP ये कार्य करता है: डिस्क से .php फ़ाइल पढ़ना, उसे AST में पार्स करना, उसे ऑपकोड (बाइटकोड) में कंपाइल करना और फिर ऑपकोड निष्पादित करना।

OPcache क्या करता है

OPcache कंपाइल किए गए ऑपकोड को साझा मेमोरी में संग्रहित करता है। बाद के अनुरोधों पर PHP पार्स और कंपाइल करने के चरणों को छोड़कर सीधे निष्पादन पर चला जाता है।

प्रदर्शन पर प्रभाव

OPcache आम तौर पर बिना किसी कोड परिवर्तन के PHP अनुप्रयोगों के थ्रूपुट में 2-5 गुना सुधार देता है।

OPcache सक्षम करना

OPcache PHP 5.5+ के साथ शामिल होता है और कई वितरणों में डिफ़ॉल्ट रूप से सक्षम रहता है। php -m | grep -i opcache से जाँच करें।

# php.ini:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=0

OPcache की मुख्य सेटिंग्स

प्रोडक्शन के लिए इन सेटिंग्स को समायोजित करें:

# php.ini:
opcache.memory_consumption=256      ; MB of shared memory
opcache.interned_strings_buffer=16  ; MB for interned strings
opcache.max_accelerated_files=20000 ; max scripts to cache
opcache.validate_timestamps=0       ; disable for production!
opcache.revalidate_freq=0           ; how often to check timestamps

validate_timestamps=0

प्रोडक्शन में, हर अनुरोध पर फ़ाइल सिस्टम की जाँच बंद करने के लिए validate_timestamps=0 सेट करें — PHP हमेशा कैश किए गए ऑपकोड का उपयोग करेगा। परिनियोजन के बाद कैश रीसेट करें।

OPcache रीसेट करना

नया कोड परिनियोजित करने के बाद कैश साफ़ करें।

<?php
opcache_reset(); // from a PHP script
// Or restart PHP-FPM:
$ kill -USR2 $(cat /run/php-fpm.pid)

opcache_get_status()

हिट दर और मेमोरी उपयोग पर नज़र रखने के लिए रनटाइम पर OPcache के आँकड़ों की क्वेरी करें।

<?php
$status = opcache_get_status();
echo "Hit rate: ".$status["opcache_statistics"]["opcache_hit_rate"]."%";

प्रीलोडिंग (PHP 7.4+)

OPcache सर्वर शुरू होने पर फ्रेमवर्क फ़ाइलों को साझा मेमोरी में प्रीलोड करता है — जिससे मुख्य क्लासों के लिए पहले अनुरोध पर होने वाला कंपाइलिंग ओवरहेड भी समाप्त हो जाता है।

# php.ini:
opcache.preload=/srv/app/preload.php
opcache.preload_user=www-data

JIT कंपाइलेशन (PHP 8.0+)

PHP 8 ने OPcache के ऊपर JIT (समय-पर) कंपाइलेशन शुरू किया, जो ऑपकोड को नेटिव मशीन कोड में बदलता है। इसका सबसे अधिक लाभ CPU-गहन कार्यों में मिलता है; सामान्य इनपुट/आउटपुट-आधारित वेब ऐप्लिकेशन में लाभ सीमित होता है।

# php.ini:
opcache.jit_buffer_size=100M
opcache.jit=1255

अपरिवर्तनीय क्लासें

OPcache वर्कर प्रक्रियाओं के बीच इंटर्न किए गए स्ट्रिंग और अपरिवर्तनीय क्लास परिभाषाएँ साझा कर सकता है — इससे प्रत्येक प्रक्रिया की मेमोरी खपत कम होती है।

सारांश

प्रोडक्शन में validate_timestamps=0 के साथ OPcache सक्षम करें। परिनियोजन के बाद opcache_reset() या PHP-FPM रीस्टार्ट से कैश साफ़ करें। opcache_get_status() से हिट दर पर नज़र रखें।

त्वरित जाँच

अधिकतम OPcache प्रदर्शन के लिए प्रोडक्शन में php.ini की कौन-सी सेटिंग 0 होनी चाहिए?

शुरुआत निःशुल्क

एआई शिक्षक के साथ PHP सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
49
पाठ
195

अक्सर पूछे जाने वाले प्रश्न

क्या “OPcache: बाइटकोड कैशिंग” पाठ निःशुल्क है?

हाँ—“OPcache: बाइटकोड कैशिंग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और PHP Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“OPcache: बाइटकोड कैशिंग” में मैं क्या सीखूँगा?

बार-बार होने वाले स्क्रिप्ट कंपाइलेशन के ओवरहेड को हटाने के लिए OPcache सक्षम और अनुकूलित करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ PHP Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या PHP Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर PHP Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“OPcache: बाइटकोड कैशिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस PHP Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर PHP Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Xdebug से PHP की प्रोफ़ाइलिंग
  2. OPcache: बाइटकोड कैशिंग
  3. डेटाबेस क्वेरी का अनुकूलन
  4. मेमोरी प्रबंधन और प्रदर्शन सुझाव
← PHP Academy पर वापस जाएँ