|
Модераторы: Daevaorn |
|
PyAlexey |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: нет Всего: 7 |
||||
|
||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 2 Всего: 36 |
PyAlexey, спасибо, за ссылки!
|
|||
|
||||
alrond |
|
||||||||||||||||||||||||||||||||||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.7.2006 Репутация: 4 Всего: 6 |
привет всем!
у меня готовы первые результаты...итак Тестирование проводил на следующем железе и софте:
Цель тестирования была определить скорость работы самих фрэймворков и сравнить их друг с другом по скорости генерирования страниц и максимальному количеству запросов на данной конфигурации. Поэтому была выбрана модель без базы данных, которая контроллером генерировала ответ и парсила один шаблон. В итоге получался HTML-файл c "Hello World!" Так как не было целью найти наибыстрейший вариант работы какого-то конкретного фрэймфорка, то я использовал связку Nginx + FCGI через IP:Port Не сомневаюсь, что можно было добиться большей скорости используя сокеты. При этом я не смотрел на кэш, так как и с кэшированием данных системой фрэймворки должны нормально работать. Как видно из дальнейших результатов, первые запросы были медленнее Листинг Django-проекта:
Для запуска джанги использовал:
Для проверки работы с Psyco, вставил:
Проект TG:
изменил в конфиге:
дял запуска использовал скрипт из http://wiki.codemongers.com/NginxTurboGearsFCGI где изменил
Для тестов использовал команды
Методика тестирования: - Запускал проект - Измерял потребляемую память - Прогонял 3 раза подряд тест "ab" - Измерял потребляемую память - Прогонял http_load - Перезапускал проект с psyco и повторял вышеописанные пункты Более подробное тестирование, с SQL-запросами, вариантами FCGI по сокету и IP, сравнением с Ruby on Rails, с дургими серверами кроме Nginx я проделаю позже...оставайтесь на связи а пока жду конструктивных предложений и испровлений методики Добавлено @ 17:40 Результаты: Первым я прогонял Django Память и время CPU до теста:
после теста:
Далее "ab" (приводу только результаты): Document Path: / Document Length: 251 bytes Concurrency Level: 5 Complete requests: 1000
Обратите внимание на процентную расстановку для первого запуска и для остальных Теперь тест http_load: 49 fetches, 1 max parallel, 12299 bytes, in 5.00001 seconds 251 mean bytes/connection 9.79998 fetches/sec, 2459.8 bytes/sec msecs/connect: 0.0552653 mean, 0.071 max, 0.048 min msecs/first-response: 1.39635 mean, 1.996 max, 1.307 min HTTP response codes: code 200 -- 49 Теперь тест с включенным Psyco Память и время CPU до теста:
после теста:
Теперь тест http_load: 49 fetches, 1 max parallel, 12299 bytes, in 5 seconds 251 mean bytes/connection 9.8 fetches/sec, 2459.8 bytes/sec msecs/connect: 0.0583878 mean, 0.103 max, 0.05 min msecs/first-response: 1.23051 mean, 3.907 max, 1.059 min HTTP response codes: code 200 -- 49 Добавлено @ 17:41 Результаты: Теперь посмотрим на TurboGears Память и время CPU до теста:
после теста:
Далее "ab": Document Path: / Document Length: 178 bytes Concurrency Level: 5 Complete requests: 1000
Теперь тест http_load: 49 fetches, 1 max parallel, 8722 bytes, in 5.00001 seconds 178 mean bytes/connection 9.79998 fetches/sec, 1744.4 bytes/sec msecs/connect: 0.065551 mean, 0.08 max, 0.055 min msecs/first-response: 6.08039 mean, 8.168 max, 5.929 min HTTP response codes: code 200 -- 49 К сожалению мне так и не удалось запустить psyco на TG. Хотя скрипт и запускается, но запросы не обрабатываются, выдавая ошибки. Но если быть до конца честным, то однажды, когда я только готовился к тестам, у меня получилось все...только я так и не понял что изменил, что опять все перестало Это сообщение отредактировал(а) alrond - 10.10.2006, 23:32 |
||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||
alrond |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.7.2006 Репутация: 4 Всего: 6 |
Выводы:
1) по тестам "ab" Django оказался быстрее Tg примерно в 4.5 раза 2) по тестам "http_load" TG оказался медленнее Django на 18%, а время первого ответа в 4.35 раза больше 3) Сразу при запуске Django экономнее обходится с памятью (50388/4296 против 68364/14160 у TG) После прогонки тестов у обоих CMF потребление памяти возросло. И здесь Django показал себя не с очень хорошей стороны, увеличив размер виртуальной памяти почти в 1.5 раза, а реальной в 1.7 раза. TG же показал увеличение виртуальной в 1.38 раза и реальной только на 10% И все же Django потребляет существенно меньше памяти 4) TG за время тестов TG потребил процессорного времени в 6 раз больше! 5) Модуль Psyco увеличил скорость отдачи в 1.16 раза (результаты только по Django), при этом увеличив потребление виртуальной памяти в 1.74 раза и реальной в 2.16 раза После тестов память увеличилась заметнее, по сравнению с тестами без psyco (1.7 раза и 2.92 раза) Хочется заметить, что если отбросить первый проход теста, то модуль показывает себя лучше (ускорение в 1.21 раза против 1.16) 6) тесты "http_load" для Django без Psyco и Django+Psyco противоречивы. С одной стороны модуль в среднем ускорил время первого обращения, с другой максимальный коннект стал в 2 раза больше. С чем связаны такие неужачные результаты у TG я не знаю, возможно что-то в настройках или проекте...спешите поделиться мнением! Добавлено @ 18:25 Только что прогнал http_load для обоих вариантов по несколько раз подряд. Как и думал, первый проход был плохим. Поэтому в расчет не брался. Судя по результатам других проходов psyco улучшил свои показатели для первого ответа, но время коннекта все равно плохо http_load -rate 10 -seconds 5 url 49 fetches, 1 max parallel, 12299 bytes, in 5 seconds 251 mean bytes/connection 9.8 fetches/sec, 2459.8 bytes/sec msecs/connect: 0.0555306 mean, 0.074 max, 0.046 min msecs/first-response: 1.41573 mean, 1.864 max, 1.31 min HTTP response codes: code 200 -- 49 http_load -rate 10 -seconds 5 url 49 fetches, 1 max parallel, 12299 bytes, in 5.00001 seconds 251 mean bytes/connection 9.79998 fetches/sec, 2459.8 bytes/sec msecs/connect: 0.0626327 mean, 0.141 max, 0.05 min msecs/first-response: 1.17227 mean, 1.618 max, 1.052 min HTTP response codes: code 200 -- 49 Это сообщение отредактировал(а) alrond - 10.10.2006, 18:25 |
|||
|
||||
J2A |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 2 Всего: 18 |
AFAIR, у TG разные конфиги для dev и production. Какой использован? Какие db-backend-ы использованы? В обеих случаях sqlite? Что понимается под виртуальной памятью, что под реальной? На какой ОС производились тесты? Какова методика замера используемой памяти?
И неплохо было б прикрепить Django и TG проекты, а то не совсем понятно какие условия моделировались. P.S. http://softwaremaniacs.org/blog/2006/10/08...rk-performance/ P.P.S. Я вообще весьма скептически отношусь к идее увеличения производительности средствами psyco и ему подобных инструментов. На поиграться интересно, а использовать на реальных приложениях - риск, причем где проявятся баги от использования psyco предугадать практически невозможно (не так давно в ZoPyRus пробегало сообщение о глюках Zope при включенном psyco) --------------------
Be easy, stay cool |
|||
|
||||
alrond |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.7.2006 Репутация: 4 Всего: 6 |
да, конфиги разные, только вот отличаются они кажется (если мне не изменяет память) только дебаг-режимом.
DB вообще не использовал. Методика довольно внятно описана вначале, вместе с исходниками, как и ОС и все остальное... ссылку я читал... про психо - это всего лишь вариант, кому-то подходит, кому-то нет... |
|||
|
||||
isagalaev |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
Просили замечания по методике:
- FastCGI сервер запущен в threaded-режиме. Известно, что Питон в тредах работает существенно медленно из-за GIL (Global Interpreter Lock) из-за которого все треды очень часть просто ждут друг-друга, потому что интерпретатором может владеть только кто-то один. Поэтому в юниксах, если есть возможность, серверы с питоновским кодом стоит запускать в prefork-режиме - будет быстрее. Кстати, под Windows ситуация обратная, потому что там создание процесса существенно медленней, чем в юниксах, и там на тредах Питон тормозит, насколько я знаю, все же меньше. - Насчет Psyco. Джанговские девелоперы тестировали его, и нашли интересную штуку. На 32-битных системах он действительно дает прирост в производительности. А вот на 64-битных - наоборот, производительность падает. Происходит так из-за того, что под Psyco процессор переключается в 32-битный режим и не использует всех прелестей своей архитектуры. Если все это так, то тот факт, что под Psyco Django таки работал быстрее означает, вероятно, что Linux и Python скомпилены не в 64 битах (несмотря на то, что работает это все на Opteron'е). Это так? P.S. Жаль, статья не на блоге! Никаких пингбеков, и чтобы прокомментировать, приходится проходить регистрацию... |
|||
|
||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 2 Всего: 36 |
Спасибо за ссылку! |
|||
|
||||
Smaug |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 144 Регистрация: 18.3.2006 Где: Баку-Москва Репутация: нет Всего: 4 |
cорри что пишу тут (почемуто не получается создать тему в этом разделе)
мне нужно помощь по Django тут предложил себя поработать в одном проекте на этом фреймворке (разумеется бесплатно,нужны знания и опыт),к моему удивлению заявку приняли, и передо мной в скором времени станут реальные задачи (написание todo list,calendar etc).Я знаю базовый Питон,ПХП,но совсем без опыта разработки - какую литературу-туториалы (кроме выложенных на офиц. сайтах) вы могли бы мне посоветовать? вообще приму с благодарностью любые советы заранее спасибо с уважением |
|||
|
||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 2 Всего: 36 |
Smaug, можешь описать проблему в форум по питону для web
|
|||
|
||||
pythonwin |
|
||||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 2 Всего: 36 |
книгоман: мысли после запуска
|
||||
|
|||||
J2A |
|
||||||
Бывалый Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 2 Всего: 18 |
http://omsk.lug.ru/wacko/Django/DjangoVsTurboGears:
Весьма толковая и вежливая беседа в группе turbogears. В итоге приходят к мнению, что нет идеала и нужно потратить выходные, чтобы попробовать и Django, и TG, и выбрать что по душе. Понравились слова Марка Рамма:
Это сообщение отредактировал(а) J2A - 22.11.2006, 18:14 --------------------
Be easy, stay cool |
||||||
|
|||||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 2 Всего: 36 |
J2A, спасибо за статью!
вот с этим не согласен - в TG есть CatWalk и Web Shell. а вот в TG 0.9a1 и старше CatWalk уже есть, но в TG 0.8.9 админки действительно нет. про CatWalk прочитать можно в: CatWalk встраивание CatWalk в проект TurboTunes tutorial PS сейчас последняя версия TurboGears 1.0b1 и уже есть идея CatWalk2 Это сообщение отредактировал(а) pythonwin - 24.11.2006, 08:38 |
|||
|
||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 2 Всего: 36 |
вот ещё по админовкой части в TG CRUD controller of SQLObject
|
|||
|
||||
Daevaorn |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 3 Всего: 70 |
||||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |