Утиліти вимірювання Laravel надають розробникам точні можливості для оцінки та оптимізації коду. Ці інструменти усувають необхідність у здогадках під час порівняння різних підходів до реалізації та виявлення вузьких місць у продуктивності.
Метод вимірювання бази виводить час виконання безпосередньо в консоль:
use App\Models\Product;
use Illuminate\Support\Benchmark;
Benchmark::dd(fn () => Product::find(1));
Кілька варіантів реалізації можна оцінити одночасно для визначення оптимальних характеристик продуктивності:
Benchmark::dd([
'Прямий підрахунок' => fn () => Product::count(),
'Підрахунок колекції' => fn () => Product::all()->count(),
]);
Ці інструменти вимірювання безперервно інтегруються з існуючою інфраструктурою Laravel, використовуючи ті ж системи шифрування та конфігурації в усьому додатку.
Створення системи рекомендацій продуктів демонструє практичні застосування вимірювань:
class RecommendationEngine
{
public function analyzePerformance(): array
{
return Benchmark::dd([
'Алгоритм A' => fn () => $this->collaborativeFiltering(),
'Алгоритм B' => fn () => $this->contentBasedFiltering(),
'Алгоритм C' => fn () => $this->hybridApproach(),
]);
}
public function measureWithResults(): array
{
[$recommendations, $duration] = Benchmark::value(
fn () => $this->hybridApproach()
);
$this->logPerformanceMetrics($duration);
return $recommendations;
}
private function collaborativeFiltering(): array
{
return Product::whereHas('purchases', function ($query) {
$query->whereIn('user_id', $this->getSimilarUsers());
})->limit(10)->get()->toArray();
}
private function contentBasedFiltering(): array
{
return Product::where('category_id', $this->user->preferred_category)
->orderBy('rating', 'desc')
->limit(10)
->get()
->toArray();
}
private function hybridApproach(): array
{
$collaborative = collect($this->collaborativeFiltering());
$contentBased = collect($this->contentBasedFiltering());
return $collaborative->merge($contentBased)
->unique('id')
->take(10)
->values()
->toArray();
}
}
Вимірювальна система підтримує контроль ітерацій для підвищення точності під час тестування швидких операцій. Виконання операцій кілька разів та обчислення середніх значень забезпечує більш надійні дані про продуктивність, особливо при порівнянні незначних відмінностей між стратегіями реалізації