Как я могу определить скорость CodeIgniter?

Я думаю об использовании PHP-фреймворка под названием CodeIgniter .

Одна из вещей, которые меня интересуют, - это скорость. Однако у меня нет возможности узнать, насколько это быстро, и я бы предпочел не просто поверить на слово их веб-сайту. Кто-нибудь знает, как я могу сам определить его скорость, или кто-нибудь может сказать мне о сайте, который может?

Ответов (7)

Решение

Code Igniter также имеет несколько встроенных инструментов тестирования: http://codeigniter.com/user_guide/general/profiling.html

Да, проблема в том, что вам нужно создать приложение, чтобы профилировать его.

На работе у нас было несколько внешних проектов, которые мы протестировали под нагрузкой, прежде чем поместить их в наши основные блоки. Мы были весьма удивлены, обнаружив критические проблемы с производительностью обоих; один был написан на CakePHP, а другой - на Drupal. Я не думаю, что это указывает на проблему какого-либо фреймворка или CMS, кроме необходимости выполнять профилирование и нагрузочное тестирование на любом сайте, который получит значительный трафик. В обоих случаях проблема была вызвана действиями разработчика, а не характеристиками программной платформы. Например, был рекурсивный вызов функции, созданный разработчиком в проекте Cake, который создавал экземпляр всего объекта Cake при каждой рекурсии, и это привело бы к отключению сервера, если бы он работал под нагрузкой.

На мой взгляд, производительность не должна быть решающим фактором при выборе фреймворка; объективные различия, вероятно, будут незначительными, и то, как вы их используете, может вызвать гораздо больше проблем с производительностью, чем внутренняя производительность фреймворка.

Я считаю, что для масштабирования любого PHP-приложения для работы под нагрузкой вам понадобится кеш-код операции, и вам нужно будет писать в интеллектуальном кэшировании контента, используя что-то вроде memcached или что-то вроде встроенного кеширования, которое поддерживает ваш фреймворк.

Для CodeIgniter и других фреймворков PHP PHP Quick Profiler очень удобен для тестирования и измерения скорости, особенно для запросов к базе данных. Вы должны проверить это: php-quick-profiler

Его очень легко установить и предоставляет отличный графический интерфейс для изучения различных тестов.

Я бы порекомендовал проверить это на себе. используйте профилировщик xdebug для создания файла, совместимого с cachegrind, и webgrind для визуализации файла.

таким образом вы получаете очень надежную информацию.

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

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

Было бы лучше найти фреймворк с хорошей поддержкой кеширования (который может быть у Code Igniter, я не знаю), который почти всегда сэкономит вам больше времени, чем несколько миллисекунд, которые вы могли бы сократить на обработку запроса, используя немного более быстрый фреймворк.

Взгляните также на Zend Framework, у него преимущество в том, что он является PHP 5, тогда как Code Igniter по-прежнему является PHP 4, насколько я понимаю. Это может быть проблемой, когда дело касается скорости, но в пользу какой структуры я не знаю. Zend имеет хорошую поддержку кэширования и профилировщик базы данных, который может помочь вам найти ваши узкие места.

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

Я согласен с другим автором, что производительность обычно не имеет большого значения, когда дело доходит до выбора фреймворка. Все основные фреймворки обладают достаточной производительностью для большинства проектов.

Я поддерживаю сайт, который несколько раз в год закрывают. В прошлом году команда разработчиков переписала весь сайт с помощью Codeigniter, и нам очень повезло с производительностью. Кроме того, время, необходимое для перезаписи, было минимальным, поскольку с этой структурой довольно легко работать. На мой взгляд, CakePHP также является хорошим выбором, если вы обнаружите, что вам не нравится Codeigniter.