मैं अपने उत्पादन सर्वर पर PHP 7.4 का उपयोग करके opcache प्रीलोडिंग ( RFC ) को सक्षम करना चाहूंगा । मैं सिम्फनी का उपयोग कर रहा हूं , लेकिन यह सभी PHP पर लागू होता है।
मैं अपने उत्पादन सर्वर पर PHP 7.4 का उपयोग करके opcache प्रीलोडिंग ( RFC ) को सक्षम करना चाहूंगा । मैं सिम्फनी का उपयोग कर रहा हूं , लेकिन यह सभी PHP पर लागू होता है।
जवाबों:
सबसे पहले आपको जोड़ना चाहिए:
opcache.preload=/path/to/project/preload.php
आपके php.ini
फिर अपनी PHP स्क्रिप्ट में आपको opcache_compile_file($file);
प्रत्येक फ़ाइल में पास होना चाहिए जिसे आप पहले से लोड करना चाहते हैं।
ब्लॉग पोस्ट के अनुसार यह तुच्छ प्रतीत होता है। 4.4 से स्पष्ट रूप से सिम्फनी एक प्रीलोड स्क्रिप्ट उत्पन्न करता है जिसे इसमें सेट किया जाना है php.ini
:
opcache.preload=/path/to/project/var/cache/prod/App_KernelProdContainer.preload.php
मैंने अपने स्थानीय डॉकर वातावरण में कुछ परीक्षण किए और यह इस प्रकार है:
PHP 7.3 बिना OPcache (वर्तमान) के
Requests per second: 8.75 [#/sec] (mean)
Time per request: 114.402 [ms] (mean)
PHP 7.4 बिना OPcache के
Requests per second: 11.44 [#/sec] (mean)
Time per request: 87.417 [ms] (mean)
PHP 7.4, ओपचे के साथ, प्रीलोडिंग के बिना (Apache + modphp)
Requests per second: 30.25 [#/sec] (mean)
Time per request: 33.053 [ms]
ओपेक के साथ PHP 7.4, प्रीलोडिंग के बिना (nginx + php fpm)
Requests per second: 40.00 [#/sec] (mean)
दुर्भाग्य से मैं प्रीलोडिंग को सक्षम करने में सक्षम नहीं था :( मुझे अपाचे + मॉड और नेग्नेक्स + एमएमएम दोनों में त्रुटियों का सामना करना पड़ा:
double free or corruption (!prev)
child pid 17 exit signal Aborted (6), possible coredump (…)
यह सुविधा हालांकि WIP जैसी दिखती है । जब मैं इस प्रीलोडिंग चीज़ का उपयोग करने में सक्षम होता हूं, तो मैं इस उत्तर को पुन: अमान्य करने जा रहा हूं। समग्र में मैं काफी PHP से प्रभावित रहा हूँ, + 30% प्रदर्शन सिर्फ उन्नयन द्वारा 7.3
करने के लिए 7.4
।