• Время чтения ~1 мин
  • 08.10.2022

Со вчерашним выпуском Laravel 9.32 был представлен помощник по тестированию, который полезен для быстрого тестирования производительности определенных частей вашего приложения.

Он работает, передавая

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),
]);

Чтобы узнать больше, ознакомьтесь с разделом сравнительного анализа

, который теперь доступен в документации помощников.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297