Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Версия 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 сек
Тоесть это возврат данных из функции дает такое торможение? Или я что то упускаю?
Не в сети
Привет, Да.. ты упускаешь из виду существенную вещь..
смотри.. бенчмарком 1 - ты непосредственно тестируешь время за которое происходит твоя выборка из БД по заданному фильтру и это правильный вариант.
бенчмарк 2 же тестирует не только время выборки из БД, а еще и время, затраченное на процесс магии ларавел, начиная от автолоадера композера, пока он прогрузится и найдет твой класс Product, потом загрузит его в память и найдет нам метод filter и заканчивая выполнением самого кода в Product::filter
Надеюсь, ты теперь понял разницу.
Не в сети
Как раз этот момент я не упустил, при малом лимите, все что ты описал (магия, композер, найдет класс и т.д.) проноситься как электропоезд (оба варианта бенча). Превращение в паровоз начинается при увеличении лимита товаров. И это при том, что сама отработка всего кода внутри функции происходит все так же быстро.
Изменено Azmandus (16.10.2019 16:29:27)
Не в сети
Значит бери пхпшторм, устанавливай xdebug, настраивай его и дебаж.. и увидишь все шаги, что проходит процесс. По другому никак не понять что да как.. нужно дебажить.
Не в сети
Страницы 1