Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.10.2019 13:19:18

Странные результаты при тестировании бенчмарком

Версия Laravel: 5.7
Версия PHP: 7.1
Операционная система и её версия: Win10
Вендор и версия сервера БД: MySQL 5.7.25
Вендор и версия Веб-сервера: OpenServer

Обнаружил потерю по времени в своем приложении при тестировании бенчмарком, может кто то сталкивался с чем то подобным:

Вариант бенчмарка 1:

$products = Product::filter($input);
public static function filter($input) {
	$timeStart = microtime(true);
		//много кода
	dd(microtime(true)-$timeStart);
	return $data;
}

Вариант бенчмарка 2:

$timeStart = microtime(true);
$products = Product::filter($input);
dd(microtime(true)-$timeStart);
public static function filter($input) {
		//много кода
	return $data;
}

Итоги бенчмарка:
При лимите = 9, все вариант работают штатно и быстро, в пределах 0.02-0.03 сек.
а вот при = 110 :
Вариант 1 снова штатно, примерно 0,03+ сек
Вариант 2 выдает выдает 0.3-0.4 сек

Тоесть это возврат данных из функции дает такое торможение? Или я что то упускаю?

Не в сети

#2 16.10.2019 16:14:12

Re: Странные результаты при тестировании бенчмарком

Привет, Да.. ты упускаешь из виду существенную вещь..
смотри.. бенчмарком 1 - ты непосредственно тестируешь время за которое происходит твоя выборка из БД по заданному фильтру и это правильный вариант.

бенчмарк 2 же тестирует не только время выборки из БД, а еще и время, затраченное на процесс магии ларавел, начиная от автолоадера композера, пока он прогрузится и найдет твой класс  Product, потом загрузит его в память и найдет нам метод filter и заканчивая выполнением самого кода в Product::filter

Надеюсь, ты теперь понял разницу.

Не в сети

#3 16.10.2019 16:28:25

Re: Странные результаты при тестировании бенчмарком

Как раз этот момент я не упустил, при малом лимите, все что ты описал (магия, композер, найдет класс и т.д.) проноситься как электропоезд (оба варианта бенча). Превращение в паровоз начинается при увеличении лимита товаров. И это при том, что сама отработка всего кода внутри функции происходит все так же быстро.

Изменено Azmandus (16.10.2019 16:29:27)

Не в сети

#4 16.10.2019 17:15:22

Re: Странные результаты при тестировании бенчмарком

Значит бери пхпшторм, устанавливай xdebug, настраивай его и дебаж.. и увидишь все шаги, что проходит процесс. По другому никак не понять что да как.. нужно дебажить.

Не в сети

Подвал раздела