Laravel по-русски

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

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

#1 19.10.2014 13:00:58

asp104

Как уменьшить время загрузки всех компонент

Господа, всем привет!
Я новичек в Laravel, начинаю его изучение уже около 3 месяцев и он мне нравиться. А начал я его изучение с самого простого, т.е. взять и простенькое своё приложение перевести на Laravel4. Вроде сделал, удалось, все хорошо, кучу мануалов перечитал. Все замечательно, но есть 1 большое НО. И очень прошу ВАШЕЙ ПОМОЩИ

Проблема. Устанавливаю Laravel4 через composer
"name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.2.*"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"

Иду в самый базовый свой контроллер и там ставлю exit(). И просто смотрю, сколько будет выполняться код до самой этой точки. И скажу что он плавает от 65 до 120 ms. Для меня это большой КРАХ. Тот код, на котором у меня было написано приложение(мобильная версия) целиком все стр отдает от 40-55ms. А тут только до базового контроллера доходит За ЭТО ВРЕМЯ, если не больше ((

Так вот вопрос, можно ли как-то или что-то поотключать в Laravel, произвести какие-то настройки? Т.е. ускорить его загрузку до базового контроллера?
Для себя я лишь использую model,view,controller,router.Все, больше ничего не трогаю, т.к. приложение СУПЕР ПРОСТОЕ - возьми из бд и покажи на страничку. Ни форм, ни логов - ничего этого нет.
Очень прошу вашей помощи в этом вопросе.

Надеюсь я смог описание саму проблему.

#2 19.10.2014 14:48:50

Re: Как уменьшить время загрузки всех компонент

Этот вопрос волнует многие умы уже довольно давно - почитай https://stackoverflow.com/questions/232 … -this-slow

В двух словах, торможение может быть из-за включенного режима отладки (debug bar, профилирование запросов и пр.) из-за криво настроенной среды (если используется Vagrant) и разных других вещей. Советую попробовать перевести проект в производственный режим и посмотреть, как изменится скорость работы. Можно даже на "настоящий" хостинг загрузить, заодно потренируешься. Обычно скорость повышается в разы и становится нормальной.

Однако при всём этом надо понимать, что сам по себе Laravel (и Symfony) - тяжёлые фреймворки и ожидать от них скорости каких-то более простых фреймворков не стоит. Тут обычно выбирают между скоростью разработки и скоростью работы. Час машины стоит дешевле часа человека.

Не в сети

#3 19.10.2014 16:50:55

Re: Как уменьшить время загрузки всех компонент

Если нужен супербыстрый ответ при минимуме кода в приложении - то, может, лучше взять инструмент под эту задачу ? Например, http://phalconphp.com/ - быстрее него нет ничего в php-мире. Или вообще перейти на другой стек технологии, node.js например.

У меня совершенно стандартное неоптимизированное приложение Laravel 4.2 с одним sql-запросом генерит страницу за 25ms - на самой дешевой пятибаксовой vps у digitalocean. 65 - 120мс это на винде ?

Не в сети

#4 19.10.2014 17:23:21

Re: Как уменьшить время загрузки всех компонент

  1. 65 — 120мс это на винде?

При разработке под Windows/XAMPP это нормально, у меня вообще 200-300 мс бывает.

Не в сети

#5 19.10.2014 22:17:58

asp104

Re: Как уменьшить время загрузки всех компонент

Proger_XP пишет:

Этот вопрос волнует многие умы уже довольно давно - почитай https://stackoverflow.com/questions/232 … -this-slow

В двух словах, торможение может быть из-за включенного режима отладки (debug bar, профилирование запросов и пр.) из-за криво настроенной среды (если используется Vagrant) и разных других вещей. Советую попробовать перевести проект в производственный режим и посмотреть, как изменится скорость работы. Можно даже на "настоящий" хостинг загрузить, заодно потренируешься. Обычно скорость повышается в разы и становится нормальной.

Однако при всём этом надо понимать, что сам по себе Laravel (и Symfony) - тяжёлые фреймворки и ожидать от них скорости каких-то более простых фреймворков не стоит. Тут обычно выбирают между скоростью разработки и скоростью работы. Час машины стоит дешевле часа человека.

Большое спс за ссылку и описание возможного решения, буду пробывать.  Что касается среды - то ничего кривого, все дело лежит на серваке (хостинг jino.ru)  и там тестирую (apache). Т.е. тут никакая не винда и никакой не xampp а так сказать уже полностью боевые условия...

#6 19.10.2014 22:23:40

asp104

Re: Как уменьшить время загрузки всех компонент

slider23 пишет:

Если нужен супербыстрый ответ при минимуме кода в приложении - то, может, лучше взять инструмент под эту задачу ? Например, http://phalconphp.com/ - быстрее него нет ничего в php-мире. Или вообще перейти на другой стек технологии, node.js например.

У меня совершенно стандартное неоптимизированное приложение Laravel 4.2 с одним sql-запросом генерит страницу за 25ms - на самой дешевой пятибаксовой vps у digitalocean. 65 - 120мс это на винде ?

Мое самописное приложение просто летает 45-55ms любая стр. Но вот решил изучить laravel4 и переписал приложение на него(в контроллере грубо говоря 1-2 запроса в бд и вывод через blade на экран) и вот это дело до 200ms порою доходит (

Когда просто в самом базовом контроллере ставлю exit - то как показывает consol firefox - запрос идет 55-120 ms ((
И это на боевых условиях.Хостинг jino.ru, стоит apache

#7 19.10.2014 22:25:10

asp104

Re: Как уменьшить время загрузки всех компонент

Proger_XP пишет:

}%> 65 - 120мс это на винде ?
При разработке под Windows/XAMPP это нормально, у меня вообще 200-300 мс бывает.

Это уже на боевой среде, на хостинге

#8 20.10.2014 08:30:21

Re: Как уменьшить время загрузки всех компонент

Насколько я помню, jino.ru — это shared-хостинг, Laravel/Symfony едва ли предназначен для такого. Там даже с настройкой DocumentRoot могут быть проблемы, чтобы не держать php-скрипты в корне сайта.

slider23 говорил о VPS — возьмите его, он млао того, что намного мощнее, так иногда и дешевле shared. Надо с настройкой повозиться, подучить основы *nix, но оно себя оправдает. Можно найти и российских реселлеров/ДЦ, для этого есть хороший ресурс poiskvps.ru.

Не в сети

#9 20.10.2014 09:20:50

asp104

Re: Как уменьшить время загрузки всех компонент

Proger_XP пишет:

}%Насколько я помню, jino.ru - это shared-хостинг, Laravel/Symfony едва ли предназначен для такого. Там даже с настройкой DocumentRoot могут быть проблемы, чтобы не держать php-скрипты в корне сайта.

**slider23** говорил о VPS - возьмите его, он млао того, что намного мощнее, так иногда и дешевле shared. Надо с настройкой повозиться, подучить основы *nix, но оно себя оправдает. Можно найти и российских реселлеров/ДЦ, для этого есть хороший ресурс ((https://poiskvps.ru/ poiskvps.ru)).

Очередное огромное спасибо за содействие в решении проблемы. Буду енспеша переходить к VPS, какие результаты там покажет себя laravel - могу сюда отписать в дальнейшем, если Вам это будет интересно. Можно считать, что проблему решили. Будем переходить на vps

#10 20.10.2014 12:44:46

Re: Как уменьшить время загрузки всех компонент

Я хочу еще предупредить, что не все vps одинаковы. Если взять таковую на каком-нить firstvps , то тормозить все может так же. Digitalocean так быстро работает, потому что там хорошие современные сервера и ssd-диски.

Вообще, я не особо понимаю гонки за супербыстрым откликом - в реальном приложении все равно основное время будет занимать sql-запросы, пользователь лишних 100мс от laravel просто не заметит.

Не в сети

#11 20.10.2014 15:22:07

Re: Как уменьшить время загрузки всех компонент

  1. могу сюда отписать в дальнейшем, если Вам это будет интересно.

Пишите, конечно, людям будет полезно.

  1. Если взять таковую на каком-нить firstvps, то тормозить все может так же. Digitalocean так быстро работает, потому что там хорошие современные сервера и ssd-диски.

И опять же не всё однозначно, так как у FirstVDS ДЦ в Москве, а у DO — в Европе, и задержка может быть больше, чем тормоза от VPS (кстати, у меня самого там был VPS с 2006 и ничего, для средненагруженных сайтов — вполне, 150 руб/месяц). Сейчас, правда, на них переходить не советую, так как они отключили у себя бесплатную поддержку и даже по организационным вопросам очень сложно до них достучаться.

  1. пользователь лишних 100мс от laravel просто не заметит.

Если бы не замечал, то CDN не были бы так популярны. ИМХО, сейчас у очень большой части пользователей оптоволокно, а на нём 200-300 мсек заметны «на глаз». Ну, и опять же гонки производителей браузеров за лишние миллисекунды при выполнении JS/отображении страницы тоже не на пустом месте.

Не в сети

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