Я работаю над игрой в Facebook, которая разработана с использованием платформы Zend. Прямо сейчас у меня нет большого трафика, и я уже видел довольно большое количество использования данных / процессорное время.
На самом деле, я плохо разбираюсь в Зенде. Я хорошо разбираюсь в кодировании с нуля для PHP и JS.
поэтому мне интересно узнать о производительности платформы Zend. потому что я думаю о перестройке приложения с использованием Zend в качестве бэкэнд для управления данными / сеансом / логикой. и использовать JS (собственный код или JQuery) для интерфейсного интерфейса визуализации и обрабатывать действие пользователя на стороне клиента.
В промежутке используйте aJax для получения данных из бэкэнда Zend .. скорее всего, REST.
Кто-нибудь имеет предложение об этой структуре? Я хочу сократить нагрузку на сервер, а также упростить управление кодом, а также улучшить работу с пользователем.
Цените, если у кого есть хорошая идея. 🙂
(POST несколько дней спустя)
поэтому базовый PHP должен быть быстрее и использовать меньше передачи данных (если код правильно), а затем Zend (или любой) рамки, правильно? Реабилитация кода здесь не вызывает большого беспокойства. 🙂
Сначала нужно сделать одно дело, если вы считаете, что приложение на основе ZF работает медленно. Измерьте это. Существуют различные инструменты, которые будут выполнять профилирующий вывод Xdebug, чтобы показать вам, какие части замедляют процесс, затем вы можете сделать некоторые шаги для оптимизации этих частей (например, более легкая инициализация веса и / или некоторое кэширование). Одним из хороших ресурсов является книга Zend Framework на странице survivethedeepend.com , « оптимизация производительности для приложений ZF ».
Одна из причин, по которой многие разработчики php становятся жертвой, приносит в жертву хорошую архитектуру и разумные принципы для того, что они воспринимают как производительность.
Вы можете решить сократить углы вашего кода, но помните: « преждевременная оптимизация – это корень всего зла ». Поэтому, если вам нужно сначала оптимизировать, убедитесь, что вы действительно делаете что-то полезное.
Библиотеки Zend разработаны с учетом лучшей практики, а не производительности. Обоснование заключается в том, что есть много способов ускорить процесс позже, не жертвуя обслуживанием и читаемостью кода (кэширование, балансировка нагрузки, аппаратное обеспечение, управление очередью и т. Д.).
Это было сказано, я не думаю, что вы ищете статистику по производительности ZF, а скорее советы о том, как настроить приложение с ним. В частности, я бы посоветовал вам создать выделенный, очень легкий бутстрап для запросов ajax. В ajax вам обычно нужны только минимальные предварительные условия, прежде чем выходить из своего контроллера. Для запросов без аякса установите их обычно с использованием рекомендуемой архитектуры (бутстрап, фронт-контроллер + плагины, контроллеры + помощники, модели + представления + помощники).
Мое личное эмпирическое правило состоит в том, что если я собираюсь подавать около 100 запросов в течение дня, то очень мало причин оптимизировать что-либо. Когда приложение начинает чувствовать себя вялым, если оно генерирует достаточный доход, возможно, я могу получить выделенный сервер, если нет, всегда есть такие решения, как apc, memcached, beanstalkd и т. Д.
Вот то, что вы ищете: контрольные ориентиры по сравнению с PHP
Zend Framework vs raw PHP-код, как правило, близок к соотношению 1: 500 запросов в секунду.
Если у вас много времени, а не много денег, развивайтесь в сыром PHP. Если у вас мало времени и денег, развивайтесь быстрее, независимо от производительности … вы всегда можете добавить оборудование позже. Если вы попадаете между ними, балансируйте его, как вы сочтете нужным.
Насколько мне это не нравится, CakePHP быстрее развивается, чем ZF, поэтому он отлично подходит для временного хруста. CodeIgniter быстрее, чем любой другой, но не имеет такого большого количества встроенных, поэтому он ближе к концу производительности, не переходя к необработанному PHP.
По моему мнению, эталонные рамки бесполезны. Они говорят что-то об абстрактной ситуации, но производительность очень ситуационная. Вы должны измерить свое приложение и оптимизировать его. Да, вероятно, существует ограничение на то, как далеко вы сможете сделать свое приложение, если вы используете множество компонентов из Zend Framework, но тогда есть также ограничение на то, как быстро ваше приложение может пойти, прежде чем вам нужно будет отказаться от PHP и написать его на C. Возможно, Zend Framework отлично работает на сайте с высокой нагрузкой, но вы должны приложить усилия для этого. Так же, как и вы, если вы не используете его.