PHP प्रदर्शन को अनुकूलित करने से यह सुनिश्चित होता है कि हमारे वेब एप्लिकेशन सुचारू रूप से चलते हैं, त्वरित प्रतिक्रिया देते हैं और ट्रैफ़िक को कुशलतापूर्वक संभालते हैं। नीचे प्रत्येक अनुकूलन रणनीति के लिए व्यावहारिक उदाहरणों के साथ PHP प्रदर्शन को प्रभावी ढंग से अधिकतम करने के बारे में एक विस्तृत, चरण-दर-चरण मार्गदर्शिका दी गई है।
अपने सिस्टम पर स्थापित PHP के वर्तमान संस्करण की जांच करके प्रारंभ करें:
php -v
यदि आपका संस्करण पुराना है, तो नवीनतम स्थिर PHP संस्करण में अपग्रेड करना अक्सर प्रदर्शन सुधार और नई सुविधाओं के साथ आता है।
नवीनतम PHP संस्करण स्थापित करने के लिए, उबंटू के लिए निम्नलिखित कमांड चलाएँ:
sudo apt update sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt install php8.2 # Replace with the latest version
प्रत्येक नया PHP संस्करण प्रदर्शन में वृद्धि लाता है। उदाहरण के लिए, PHP 7.x, PHP 5.x की तुलना में निष्पादन समय में लगभग 50% सुधार प्रदान करता है, और PHP 8.x में और भी महत्वपूर्ण सुधार हैं।
Opcache मेमोरी में पूर्व-संकलित स्क्रिप्ट बाइटकोड को संग्रहीत करता है, जिससे प्रत्येक अनुरोध पर स्क्रिप्ट को लोड करने और पार्स करने के लिए PHP की आवश्यकता कम हो जाती है। इसे सक्षम करने के लिए:
sudo nano /etc/php/8.2/fpm/php.ini # Use your PHP version
opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=10000 opcache.revalidate_freq=0
sudo systemctl restart php8.2-fpm sudo systemctl restart nginx
Opcache प्रत्येक अनुरोध पर PHP कोड को संकलित करने की आवश्यकता को समाप्त करके, CPU उपयोग और अनुरोध समय को काफी कम करके प्रदर्शन में काफी सुधार कर सकता है।
अनुचित डेटाबेस अनुक्रमण क्वेरी निष्पादन को धीमा कर सकता है। सुनिश्चित करें कि आप WHERE क्लॉज में या सॉर्टिंग के लिए उपयोग किए जाने वाले इंडेक्स कॉलम का उपयोग करें।
उदाहरण MySQL क्वेरी:
CREATE INDEX idx_user_email ON users(email);
बाधाओं का पता लगाने के लिए अपने डेटाबेस प्रश्नों को प्रोफाइल करें। उदाहरण के लिए, लारवेल का एलोक्वेंट ओआरएम, क्वेरी प्रोफाइलिंग की अनुमति देता है:
DB::enableQueryLog(); $users = DB::table('users')->get(); dd(DB::getQueryLog());
अपने डेटाबेस प्रश्नों को अनुकूलित करके और महत्वपूर्ण कॉलमों को अनुक्रमित करके, आप क्वेरी निष्पादन समय को काफी कम कर सकते हैं, इस प्रकार आपके PHP एप्लिकेशन को तेज़ कर सकते हैं।
Gzip आपके सर्वर से क्लाइंट को भेजे गए डेटा के आकार को कम कर देता है, जिससे पेज तेजी से लोड होता है। इसे Nginx में सक्षम करने के लिए:
sudo nano /etc/nginx/nginx.conf
gzip on; gzip_comp_level 2; gzip_types text/css application/javascript application/json image/svg xml; gzip_min_length 256;
sudo systemctl restart nginx
जीज़िप संपीड़न को सक्षम करने से स्थानांतरित किए जाने वाले डेटा की मात्रा कम हो जाती है, जिसके परिणामस्वरूप पेज लोड समय तेज हो जाता है और बैंडविड्थ उपयोग कम हो जाता है।
क्लाउडफ्लेयर या अमेज़ॅन क्लाउडफ्रंट जैसे सीडीएन दुनिया भर में वितरित सर्वर पर सीएसएस, जावास्क्रिप्ट और छवियों जैसी स्थिर संपत्तियों की प्रतियां संग्रहीत करते हैं, जिससे वे उपयोगकर्ता के करीब उपलब्ध हो जाते हैं।
उदाहरण:
स्थैतिक सामग्री को सीडीएन पर लोड करके, आप अपने सर्वर पर लोड कम करते हैं और दुनिया भर के उपयोगकर्ताओं के लिए प्रतिक्रिया समय में काफी सुधार करते हैं।
सुनिश्चित करें कि आप PHP-FPM (FastCGI प्रोसेस मैनेजर) का उपयोग कर रहे हैं, जो उच्च-लोड वातावरण के लिए बेहतर अनुकूलित है:
sudo apt install php8.2-fpm
आप PHP-FPM पूल कॉन्फ़िगरेशन फ़ाइल में pm.max_children, pm.start_servers, pm.min_spare_servers, और pm.max_spare_servers सेटिंग्स को समायोजित करके अधिक अनुरोधों को कुशलतापूर्वक संभालने के लिए PHP-FPM सेटिंग्स को ट्यून कर सकते हैं।
पूल कॉन्फ़िगरेशन फ़ाइल संपादित करें:
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
उपलब्ध मेमोरी और ट्रैफ़िक के आधार पर pm.max_children बढ़ाएँ:
pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 20
PHP-FPM और Nginx को पुनरारंभ करें:
sudo systemctl restart php8.2-fpm sudo systemctl restart nginx
PHP-FPM आपकी PHP प्रक्रियाओं को अधिक समवर्ती अनुरोधों को कुशलतापूर्वक संभालने की अनुमति देता है, जिससे भारी लोड के तहत सर्वर प्रतिक्रिया समय कम हो जाता है।
अनावश्यक रिक्त स्थान और टिप्पणियों को हटाकर आपकी सीएसएस, जावास्क्रिप्ट और HTML फ़ाइलों को छोटा करने से फ़ाइल का आकार कम हो जाता है।
लारवेल मिक्स या गल्प जैसे टूल का उपयोग करें:
npm install laravel-mix --save-dev
लारवेल के लिए उदाहरण वेबपैक.मिक्स.जेएस फ़ाइल:
const mix = require('laravel-mix'); mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css') .minify('public/js/app.js') .minify('public/css/app.css');
अपनी Nginx कॉन्फ़िगरेशन फ़ाइल में, स्थिर संपत्तियों के लिए कैशिंग जोड़ें:
location ~* \.(css|js|jpg|jpeg|png|gif|ico|woff|woff2)$ { expires 1y; access_log off; add_header Cache-Control "public"; }
ब्राउज़र कैशिंग को सक्षम करने के साथ-साथ संपत्तियों को छोटा और बंडल करने से आपकी फ़ाइलों का आकार कम हो जाता है और लोड समय कम हो जाता है, जिससे एप्लिकेशन तेज़ हो जाता है।
रेडिस स्थापित करने के लिए:
sudo apt install redis-server
लारवेल में, .env फ़ाइल खोलें और Redis को कैश ड्राइवर के रूप में कॉन्फ़िगर करें:
CACHE_DRIVER=redis
बार-बार डेटाबेस क्वेरीज़ को तेज़ करने के लिए क्वेरी कैशिंग का उपयोग करें:
$users = Cache::remember('users', 60, function() { return DB::table('users')->get(); });
डेटाबेस क्वेरीज़ को कैशिंग करके, आप डेटाबेस लोड को कम करते हैं और बार-बार एक्सेस किए गए डेटा के लिए प्रतिक्रिया समय में काफी सुधार करते हैं।
उत्पादन के लिए कंपोज़र ऑटोलोडर्स को अनुकूलित करें:
composer install --optimize-autoloader --no-dev
लारवेल में, मेमोरी उपयोग को कम करने और एप्लिकेशन बूट समय को तेज करने के लिए config/app.php में किसी भी अप्रयुक्त सेवा प्रदाता को अक्षम करें।
ऑटोलोड ऑप्टिमाइज़ेशन क्लास मैप को संकलित करता है, जिससे क्लास लोडिंग तेज़ हो जाती है। अप्रयुक्त सेवाओं को अक्षम करने से एप्लिकेशन को कम संसाधनों का उपयोग करने में मदद मिलती है।
अपने एप्लिकेशन को प्रोफाइल करने के लिए लारवेल टेलीस्कोप स्थापित करें:
composer require laravel/telescope php artisan telescope:install php artisan migrate php artisan serve
आप एप्लिकेशन बाधाओं, डेटाबेस प्रदर्शन और अधिक का विश्लेषण करने के लिए न्यू रेलिक या ब्लैकफ़ायर जैसे तृतीय-पक्ष टूल को एकीकृत कर सकते हैं।
निगरानी और प्रोफाइलिंग उपकरण आपके PHP एप्लिकेशन में धीमी क्वेरी, मेमोरी लीक और बाधाओं की पहचान करने में मदद करते हैं, जिससे आप प्रदर्शन समस्याओं को सक्रिय रूप से ठीक कर सकते हैं।
इन चरणों का पालन करके, आप अपने PHP एप्लिकेशन के प्रदर्शन में उल्लेखनीय सुधार कर सकते हैं। PHP को अपडेट करने और ओपकोड कैशिंग को सक्षम करने से लेकर डेटाबेस क्वेरीज़ को अनुकूलित करने और PHP-FPM को कॉन्फ़िगर करने तक, प्रत्येक चरण अधिक प्रतिक्रियाशील और स्केलेबल एप्लिकेशन में योगदान देता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3