Производительность Yii Framework

Yii Framework - высокопроизводительный фреймворк. График и таблица, приведенные ниже, показывают, насколько эффективен Yii по сравнению с другими популярными PHP фреймворками. На графике RPS обозначает количество запросов в секунду(request per second), что показывает, как много запросов приложение, написанное на фреймворке, может обрабатывать в секунду; и APC - широко распространённое дополнение PHP, которое кэширует PHP код, и поэтому не тратится время на загрузку и парсинг PHP кода. Цель сравнения - показать максимальный RPS, который можно достигнуть на каждом фреймворке. Чем больше число, тем меньше расходов времени уходит на сам фреймворк.

Как Вы видите, Yii превосходит все другие фреймворки. Преимущество особенно значительно, когда используется yiilite.php как загрузочный(bootstrap) файл. Yiilite - оптимизированный bootstrap файл, включенный в Yii framework для использования на уже готовых приложениях, где не требуется отладка и трасировка.

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

Сравнение

Тестирование производительности

Данные о RPS были получены с использованием утилиты ApacheBench, с использованием команды "ab -t 30 -c 10 URL" (т.е., 10 одновременных запросов на протяжении 30 секунд). Для чистоты эксперимента мы сначала останавливаем, а затем запускаем сервер Apache.

Условия тестирования:

  • Операционная система: Red Hat Enterprise Linux Server release 5.2
  • Web сервер: Apache httpd 2.0.40
  • PHP: 5.2.6, любые неиспользованные расширения выключены
  • CPU: Dual Intel Xeon 3.2GHz
  • Оперативная память: 2GB
  • Винчестер: 73GB 15K RPM SCSI/SAS HDD

Конфигурация APC:

apc.enabled=1
apc.shm_segments=1
apc.optimization=0
apc.shm_size=32
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
apc.cache_by_default=1

Тестируемые приложения

Тестируемое приложение для каждого фреймворка пишется отдельно. Каждое приложение просто пытается вывести строку "hello world". Любые дополнительные возможности фреймворка отключены для чистоты эксперимента. Вы можете сами проверить все тестируемые приложения, если не верите.

Цель тестирования - получить наивысший RPS(или минимальные чистые расходы фреймворка) каждого фреймворка без использования любых дополнительных технологий кэширования сервера. Таким образом кажде приложение написанно простой командой die('hello world');, помещенной в контроллер по умолчанию фреймворка. Мы не прибегаем к полной логике отображения каждого фреймворка, потому что это будет медленнее и не даст нам верхний лимит RPS. По сути дела, для действий, отвечающих на AJAX запросы, полная логика отображения редко используется.

 


Created by 78.132.155.192. Last Modification: Sunday 11 of January, 2009 12:23:54 MSK by Bethrezen. (Version 19)

Online users

4 online users

Top users

  1. 80
     wuch80 points 
  2. 78
     xenon78 points 
  3. 29
  4. 29
  5. 26
     kjedi26 points 
  6. 23
     lichad23 points 
  7. 22
     gohdan22 points 
  8. 20
  9. 8
  10. 6
More...