Со вчерашним выпуском Laravel 9.32 был представлен помощник по тестированию, который полезен для быстрого тестирования производительности определенных частей вашего приложения.
Он работает, передаваяYou thought that yesterday was only about the new "dd" source stuff? There is more! Beginning with yesterday's @laravelphp release, you may use the new "Benchmark" class to quickly test the performance of certain parts of your application. ⏱
— nuno maduro 🤌🏻 (@enunomaduro) September 29, 2022
📚 https://t.co/7G7B5mJuVx. pic.twitter.com/JeYVk9m5Tm
Closure, который запускает некоторый код, который вы хотите протестировать, и возвращает время, затраченное на
ms:
Closure и при желании настроить, сколько итераций должны выполнять замыкания:
use Illuminate\Support\Benchmark;
Benchmark::measure(fn() => Post::find(1));
// Returns time in ms.
// i.e., 0.1ms
Класс Benchmark имеет метод dd(), который запускает описанное выше измерения, обернутые вызовом
dd(), который выведет результаты на консоль или в браузер и завершит работу.
// Run each callback three times
Benchmark::measure([
fn() => Post::find(1),
fn() => Post::find(5),
], 3);
// [0.02, 0.03]
// Use keys
Benchmark::measure([
'Post 1' => fn() => Post::find(1),
'Post 5' => fn() => Post::find(5),
], 3);
// ['Post 1' => 0.02, 'Post 5' => 0.03]
Свяжите это обновление с выходным файлом/строкой dd(), и у вас есть новые полезные инструменты отладки!
Benchmark::dd([
'Post 1' => fn() => Post::find(1),
'Post 5' => fn() => Post::find(5),
]);
Чтобы узнать больше, ознакомьтесь с разделом сравнительного анализа , который теперь доступен в документации помощников. а>