Laravel Performance Optimization
Laravel Performance Optimization: অ্যাপ্লিকেশনকে দ্রুত করার ১০টি টিপস
Laravel দিয়ে তৈরি অ্যাপ্লিকেশন যতই বড় হয়, পারফরম্যান্স বজায় রাখা ততটাই গুরুত্বপূর্ণ হয়ে পড়ে। আজকের এই ব্লগে আমরা Laravel অ্যাপকে কীভাবে আরও দ্রুত, হালকা ও প্রোডাকশন রেডি করা যায় সেই বিষয়েই আলোচনা করবো। ১. Eager Loading ব্যবহার করুন (N+1 সমস্যা এড়াতে) আমরা আগের টিউটোরিয়ালে দেখেছি with() ব্যবহার করে কিভাবে N+1 সমস্যা থেকে বাঁচা যায়। এটা Laravel performance বাড়ানোর অন্যতম প্রধান কৌশল। $users = User::with('profile')->get(); ২. Caching ব্যবহার করুন (Query, View, Routes) Laravel এ বিভিন্ন ধরণের ক্যাশিং রয়েছে: Query Cache: $users = Cache::remember('users.all', 60, function () { return User::all(); }); Route Cache: php artisan route:cache Config Cache: php artisan config:cache View Cache: php artisan view:cache ৩. Chunking এবং Cursor ব্যবহার করুন বড় ডেটার জন্য all() বা get() ব্যবহার না করে chunk() বা cursor() ব্যবহার করলে মেমরি অনেক কম ব্যবহার হয়। User::chunk(100, function ($users) { foreach ($users as $user) { // process } }); ৪. Indexing করুন ডেটাবেস টেবিলে ডেটাবেসে where, join, orderBy ইত্যাদিতে ব্যবহৃত ফিল্ডগুলোতে index তৈরি করুন। উদাহরণ: Schema::table('users', function (Blueprint $table) { $table->index('email'); }); ৫. Pagination ব্যবহার করুন সব ডেটা একসাথে get() না করে paginate() ব্যবহার করুন: $posts = Post::paginate(10); ৬. Unused Service Provider ও Middleware অপসারণ করুন config/app.php ফাইল দেখে অপ্রয়োজনীয় সার্ভিস প্রোভাইডার ও মিডলওয়্যার বাদ দিন। ৭. Queues ব্যবহার করুন Time-Consuming Task এর জন্য ইমেইল পাঠানো, ভিডিও প্রসেসিং, রিপোর্ট জেনারেশন ইত্যাদি কাজগুলো queue করে দিন: Mail::to($user)->queue(new WelcomeMail($user)); ৮. Optimize Composer Autoload composer install --optimize-autoloader --no-dev ৯. OPcache Enable করুন (Production Server এ) আপনার PHP সার্ভারে OPcache চালু থাকলে স্ক্রিপ্টগুলো ক্যাশ হয়ে থাকবে এবং দ্রুত রান করবে। ১০. Debugbar শুধুমাত্র Local এ চালু রাখুন barryvdh/laravel-debugbar শুধুমাত্র local environment এ চালু রাখুন। if (app()->environment('local')) { \Debugbar::enable(); } Original Post: https://iamsumon.vercel.app/blog/post/683ff8044e5ab3e509ee6910 My Portfolio: https://iamsumon.vercel.app
No comments