مارک پلاس

تکنولوژی نوین اینترنتی

بررسی و بهینه‌سازی کارایی پروژه لاراول

دسته‌بندی‌ها

بررسی و بهینه‌سازی کارایی پروژه لاراول

⚡ بررسی و بهینه‌سازی کارایی پروژه لاراول


📌 مقدمه

لاراول به طور پیش‌فرض فریم‌ورک سریعی است، اما با بزرگ شدن پروژه یا افزایش کاربران، نیاز به بهینه‌سازی عملکرد برای حفظ سرعت و کاهش مصرف منابع ضروری می‌شود. در این مقاله به تکنیک‌هایی برای افزایش سرعت، کاهش بار روی سرور و بهبود تجربه کاربر می‌پردازیم.


🧠 ۱. فعال‌سازی کش (Caching)

📁 Cache کردن کوئری‌ها و داده‌ها:

php
$posts = Cache::remember('posts', 60, function () { return Post::all(); });

⏱️ باعث کاهش درخواست‌های مکرر به دیتابیس می‌شود.

⚙️ سیستم‌های پشتیبانی شده:

  • Redis

  • Memcached

  • File (پیش‌فرض)

در .env:

ini
CACHE_DRIVER=redis

📄 ۲. استفاده از Route Cache

bash
php artisan route:cache

سرعت بارگذاری مسیرها رو تا چند برابر افزایش می‌ده!

برای حذف کش مسیرها:

bash
php artisan route:clear

🧰 ۳. بهینه‌سازی Autoloader

bash
composer install --optimize-autoloader --no-dev

در محیط production همیشه از این گزینه استفاده کن.


🧹 ۴. حذف سرویس‌های غیرضروری در config/app.php

مثلاً اگر از broadcast استفاده نمی‌کنی، BroadcastServiceProvider رو کامنت کن.


🧪 ۵. استفاده از Eager Loading به جای Lazy Loading

مثال:

php
// بد: Lazy Loading $posts = Post::all(); foreach ($posts as $post) { echo $post->user->name; } // خوب: Eager Loading $posts = Post::with('user')->get();

باعث کاهش تعداد کوئری‌ها (N+1 Problem) می‌شود.


📂 ۶. فشرده‌سازی Assetها (CSS/JS)

استفاده از ابزار Laravel Mix:

bash
npm run prod

این دستور فایل‌های CSS و JS را minify و optimize می‌کند.


🪪 ۷. استفاده از Queues برای عملیات سنگین

برای ارسال ایمیل، آپلود فایل، یا گزارش‌گیری:

php
Mail::to($user)->queue(new WelcomeMail());

و در .env:

ini
QUEUE_CONNECTION=database

حتماً باید queue:work در پس‌زمینه اجرا شود.


🚫 ۸. حذف Debugbar در Production

Laravel Debugbar فقط برای توسعه مناسبه. در محیط production غیرفعالش کن.

در composer.json:

json
"require-dev": { "barryvdh/laravel-debugbar": "^3.0" }

🔒 ۹. اپتیمایز کردن دیتابیس

  • ایندکس روی ستون‌هایی که جستجو زیاد روشون انجام می‌شه

  • استفاده از EXPLAIN برای بررسی کوئری‌ها

  • استفاده از ابزارهایی مثل Laravel Telescope یا Clockwork برای مانیتورینگ


🔍 ۱۰. استفاده از ابزارهای مانیتورینگ

ابزارکاربرد
Laravel Telescopeبررسی درخواست‌ها و کوئری‌ها
Laravel Debugbarآنالیز زمان اجرا در توسعه
Blackfire.ioپروفایل حرفه‌ای PHP/Laravel
Horizonمانیتورینگ صف‌های Redis

✅ جمع‌بندی نهایی

با رعایت این موارد:

  • بار سرور کاهش پیدا می‌کنه

  • زمان پاسخ‌دهی کمتر می‌شه

  • تجربه کاربری بهبود پیدا می‌کنه


🔧 چک‌لیست نهایی بهینه‌سازی

  • فعال‌سازی route cache

  • استفاده از eager loading

  • نصب queue برای ایمیل و کارهای سنگین

  • حذف debugbar در production

  • minify کردن assetها

  • تنظیم Redis یا Memcached

  • بهینه‌سازی کوئری‌ها

محتوای مرتبط

پست‌های مرتبط