Laravel по-русски

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

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

#1 29.09.2017 02:05:56

Viktor92
Откуда: Москва
Сообщений: 26

Как увелечить Скорость и производительность Laravel?

Добрый Вечер. Хочу спросить у продвинутых людей, как повысить производительность при загрузки сервера. Фикча такая - есть в фреймворке папка Vendor - она со всеми файлами весит 33мб. И меня это если честно немного напрягает что куча различных подключений. Какие есть способы повысить производительность при включении сервера?  Например я тестировал Phalcom там скорость быстрее, но я уже написал логики в ларавель и привык к синтаксису. Но что если у меня будет по 2 тысячи оферов? грузиться  а запросы будут повторяться. Как можно улучшить быстродействие. Заранее спасибо.

Не в сети

#2 29.09.2017 07:05:58

Re: Как увелечить Скорость и производительность Laravel?

использование расширения php-opcache в продакшене является обязательным – в этом случае неважно сколько и какого объёма php-файлы в приложении – они все предкомпилируются в байткод, хранятся в памяти и оттуда же и выполняются. собственно в девелопменте тоже можно работать с этим расширением, в php.ini должно быть opcache.enable=1, в opcache.memory_consumption указать размер максимально выделяемой памяти в мегабайтах (для ларавеля стандартных 64м более чем достаточно, но если на серваке крутятся другие сайты возможно надо будет увеличивать, следи за количеством свободной памяти в опкэше через phpinfo). в продакшене можно выиграть ещё немного задав opcache.revalidate_freq отличным от нуля – в этом случае он не будет проверять время на файлах на каждый запрос, только с определённым интервалом, а также сэкономить немножко памяти установив opcache.save_comments=0 – комментарии в ларавеле ни для чего не используются (и слава богу)

что касается скорости загрузки данных из базы, то она оптимизируется настройками сервера БД и особенно сильно зависит от правильного выбора индексов в таблицах

Не в сети

#3 29.09.2017 08:54:50

Re: Как увелечить Скорость и производительность Laravel?

По моему опыту, в большинстве проектов тормоза отнюдь не из-за кэшей, а из-за неиспользования жадной загрузки и очередей, из-за JS в Blade файлах, кучи ненужных загружаемых assets и т.д.

Изменено AlexeyMezenin (29.09.2017 08:56:11)

Не в сети

#4 29.09.2017 12:21:27

Re: Как увелечить Скорость и производительность Laravel?

Добрый Вечер. Хочу спросить у продвинутых людей, как повысить производительность при загрузки сервера. Фикча такая - есть в фреймворке папка Vendor - она со всеми файлами весит 33мб. И меня это если честно немного напрягает что куча различных подключений. Какие есть способы повысить производительность при включении сервера?  Например я тестировал Phalcom там скорость быстрее, но я уже написал логики в ларавель и привык к синтаксису. Но что если у меня будет по 2 тысячи оферов? грузиться  а запросы будут повторяться. Как можно улучшить быстродействие. Заранее спасибо.

Я работал с phalcon, как фреймворк - хз, неудобен, да еще и исходники хрен просмотришь, а документация скудная, но, он быстрый - да.

Какую нагрузку ты планируешь и на каком железе? Может быть ларавел не годится в корне.

А так, что, общие слова:
Отрубить все ненужные сервисы
в .env APP_DEBUG=false
php artisan optimize
Минимум запросов в бд (кэширование, например redis)
opcache
тюнинг окружения (nginx/php-fpm).

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

Не в сети

#5 29.09.2017 12:29:39

Re: Как увелечить Скорость и производительность Laravel?

По моему опыту, в большинстве проектов тормоза отнюдь не из-за кэшей

Лет 6-7 назад как-то был у меня слабый сервер (обычный для того времени с обычным PHP 5.0). После того, как в обновился до PHP 5.2 или 5.3 и включил opcache, который только появился (тогда его надо было включать специально), то сайт стал работать заметнее прямо на глаз.  До этого были сторонние расширения типа XCache, APC, но у них были баги, что не мешало их использовать, т.к. происзовидельность реально вырастала (тогда SSD на серверах почти не было).

С кэшем тоже самое - если есть тяжелые запросы, то кэшируя их можно визуально увеличить работу сайта на порядки. Такие запросы есть в каждом приложении, особенно если данных много и их просто не оптимизировать на уровне БД.

Не в сети

#6 29.09.2017 13:04:50

Re: Как увелечить Скорость и производительность Laravel?

Я не говорю, что кэш не нужно использовать. Но вот если 500 запросов в БД идет на один HTTP запрос (видел такое); или тянется 1.2 Мб JSа (на текущем проекте такое), когда после удаления дубликатов и минификации это всего 280 Кб; или вместо очередей напрямую идет 2 запроса к стороннему API и посылается емэйл (3-4 секунды после клика до начала загрузки следующей страницы), тогда кэш - это капля в море, которую пользователь не заметит. Вот когда все подобные вещи вылизаны, тогда уже и польза от кэша будет.

Изменено AlexeyMezenin (29.09.2017 13:09:57)

Не в сети

#7 29.09.2017 13:09:02

Re: Как увелечить Скорость и производительность Laravel?

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

Не в сети

#8 29.09.2017 16:33:36

Re: Как увелечить Скорость и производительность Laravel?

Но вот если 500 запросов в БД идет на один HTTP запрос (видел такое);

Ого! До сотни я видел, но 500 - это уже слишком.

Вот когда все подобные вещи вылизаны, тогда уже и польза от кэша будет.

По-хорошему, такие вещи изначально не должны допускаться, так как это не то, что нельзя предвидеть, и не то, что устраняется рефакторингом.

Не в сети

#9 29.09.2017 17:12:44

Re: Как увелечить Скорость и производительность Laravel?

По-хорошему, такие вещи изначально не должны допускаться, так как это не то, что нельзя предвидеть, и не то, что устраняется рефакторингом.

По-хорошему, да. Но не видел пока ни одного проекта на ларе, не считая совсем уж простеньких, где хотя бы одна из вышеописанных вещей не присутствовала бы (видел десятки коммерческих). Мне кажется, что такое качество кода вызвано низким порогом вхождения в Laravel, посмотрел туториал и уже можно делать проект...

Ого! До сотни я видел, но 500 - это уже слишком.

https://imgur.com/a/fpZxz

Это случилось из-за того, что человек не знает про жадную загрузку и наворотил мудреную систему ролей. Страница, кстати, отображает банальную галерею.

Изменено AlexeyMezenin (29.09.2017 17:30:03)

Не в сети

#10 29.09.2017 18:57:49

Re: Как увелечить Скорость и производительность Laravel?

Мне кажется, что такое качество кода вызвано низким порогом вхождения в Laravel, посмотрел туториал и уже можно делать проект...

Это тенденция последних 5, а то и 10 лет в PHP и в JS вообще. Сначала были "сделаю сайт на вордпресс и друпал", потом это стало "не круто", появился фреймворк "для людей" все-в-одном - Laravel (да и Yii) и такие сайтоделатели перекочевали в эту нишу. А в JS это было jQuery, потом всякие Backbone, Angular, Vue...

Спрос на сайты большой, а талантливых мастеров, как всегда, мало, вот люди и идут. Это как раньше было модно учиться на юриста, так теперь - на программиста, а удаленная работа позволяет гораздо большему числу людей попробовать себя в этом. И заказчик тоже часто не понимает, чего он должен платить $50/ч кому-то, если тут же рядом есть "ничуть не хуже" вариант за $10/ч.

Это случилось из-за того, что человек не знает про жадную загрузку и наворотил мудреную систему ролей. Страница, кстати, отображает банальную галерею.

Гм, не удивлюсь, если там и для одинаковых пользователей дублируются запросы. Видимо, "517 of which were duplicated" об этом и говорит...

Не в сети

#11 29.09.2017 19:58:18

Re: Как увелечить Скорость и производительность Laravel?

чего он должен платить $50/ч кому-то, если тут же рядом есть "ничуть не хуже" вариант за $10/ч

Да уж, этого никому из конечных клиентов (владельцам бизнеса) не объяснить, пока на своем опыте не прочувствуют. А "диджитал агентствам" и так нормально, с клиента получили $70, программисту заплатили $10, проект сдали.

Не в сети

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