LINUX.ORG.RU

Pythons фрэймворки. Скорость.


0

6

Для одного простенького проекта смотрел разные python-фрэймворки на предмет скорости.
Большие фрэймворки (вроде Django, Pyramid) даже не смотрел. Там на одном сервере без кэша больше 1000 запросов в секунду получить сложно.

Так вот, победителем вышел http://bottlepy.org/ с bjoern WSGI сервером (http://pypi.python.org/pypi/bjoern). На моей локальной машине скорость «hello world» была порядка 22k запросов в секунду.
Если кому интересно могу завтра выложить результаты тестирования.

★★★★★

Ответ на: комментарий от provaton

Ну мож там внезапно какие-нибудь еще методики применялись. :)

strangeman ★★★★
()

Так вот, победителем вышел http://bottlepy.org/

bottlepy - величайшее изобретение человечества, после колеса.

deb
()

меня пока что и cherrypy устраивает.

но да - забукмарчу.

AGUtilities ★★★
()

На моей локальной машине скорость «hello world» была порядка 22k запросов в секунду.

А скорость print «hello world»; какая была?

resurtm ★★★
()

Для одного простенького проекта смотрел разные python-фрэймворки на предмет скорости.

Там на одном сервере без кэша больше 1000 запросов в секунду получить сложно.

Так вот, победителем вышел http://bottlepy.org/ с bjoern WSGI сервером

это такой способ вскрыть мозг всем, кто зайдет в топик?

xpahos ★★★★★
()

«hello world» не показатель , ты попробй сделать хоть пару запросов к БД и парсинг шаблона и увидишь как твои 22k будут в лучшем случае 22k/10

yanka ★★
()
Ответ на: комментарий от AGUtilities

Это, мягко говоря, первая функциональность любого фреймворка.

Впрочем, я так понимаю, что в топикстарте просто наброс был...

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

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

AGUtilities ★★★
()
Ответ на: комментарий от AGUtilities

он же остаётся при этом фреймворком?

Фреймворк — это каркас для сборки готового приложения. Там должно быть всё. Если чего-то нет для того, чтобы быстро и родными средствами создать приложение, то это просто набор библиотек.

KRoN73 ★★★★★
()
Ответ на: комментарий от AGUtilities

cherrypy сервер веб приложений...его функциональность для создания полноценных веб приложений нужно расширять ...как минимум к нему привязывают темплейтный движок и модуль для работы с бд или даже орм

yanka ★★
()
Ответ на: комментарий от AGUtilities

А в Pyramid есть? Там тоже нет, просто при создании приложения ты можешь указать возможность использования определенного шаблонизатора и добавить в проект SQLAlchemy.

xpahos ★★★★★
()

а как на счет webpy?

silw ★★★★★
()

А что кроме бутылки вообще смотрел?

Я лично webob юзал. Django юзал. Турбогирз еще первый. Фласк. Вейскрейзуг немного (дня два). Торнадо ну и в принципе не считая Z и Z3 вроде все.

Мой выбор Торнадо на сей момент. У него у единственного оказались фишки о которых други даже и не думают (типа вам надо вы и прикрутите)

demmsnt
()

что бы отдавать статичную хтмльку питон не нужен, с этим и nginx прекрасно справится А что бы состаряпать простенький проект я бы взял фласк или джангу или торнаду или ботл – это вообще без разницы, потому что простенькому сайту не нужно держать никаких нагрузок, ему достаточно просто работать

Zubchick
()
Ответ на: комментарий от Zubchick

Смотря что ты потом к этому простенькому сайту решишь докрутить. Я так любил фласк. так любил... Это было нечто. А потом решил туда прикрутить сам не помню что. И оказалось, что они в внутрях там такие макароны сделали.... Там крушавель с монашками внутри...

demmsnt
()
Ответ на: комментарий от KRoN73

Это, мягко говоря, первая функциональность любого фреймворка.

У bottle.py нет запросов к бд из коробки, если не считать sqlite-plugin в новых версиях.

Я так понимаю, что тех, кто думает категориями php, переучить думать по-другому очень сложно.

deb
()
Ответ на: комментарий от deb

Я так понимаю, что тех, кто думает категориями php, переучить думать по-другому очень сложно

Э... Прошу прощения, а что, работа с дата-бэкендом для Python-фреймворков уже не является актуальной? libastral?

KRoN73 ★★★★★
()
Ответ на: комментарий от yanka

«hello world» не показатель

Ну во-первых задачи бывают разные. Есть задачи где БД не нужна.
Во-вторых скорость парсинга шаблонов я не тестирую, а тестирую именно WSGI сервера в разных фрэймворках.

pi11 ★★★★★
() автор топика
Ответ на: комментарий от pi11

Есть задачи где БД не нужна.

Вычисление N знаков числа Пи?

Во-вторых скорость парсинга шаблонов я не тестирую

А страницу выводим, запихнув html-код в python-файлы? И у кого тут PHP-мышление? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Вычисление N знаков числа Пи?

Ну навскидку - если сервис тянет данные с API

А страницу выводим, запихнув html-код в python-файлы? И у кого тут PHP-мышление? :)

Я уже говорил, я не тестировал скорость шаблонизаторов. Конечно скорость будет меньше.

pi11 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

у питона и у самого по себе не плохая форматилка стрингов, так что считывание с диска файла и форматирование его ака

return "%(f1)s %(f2)s" % {'f1': 'text', 'f2': 'text'}
не великая премудрость.

AGUtilities ★★★
()
Ответ на: комментарий от KRoN73

Э... Прошу прощения, а что, работа с дата-бэкендом для Python-фреймворков уже не является актуальной? libastral?

Во-первых:

Is bottle suitable for complex applications?

Bottle is a micro framework designed for prototyping and building small web applications and services. It stays out of your way and allows you to get things done fast, but misses some advanced features and ready-to-use solutions found in other frameworks (MVC, ORM, form validation, scaffolding, XML-RPC). Although it is possible to add these features and build complex applications with Bottle, you should consider using a full-stack Web framework like pylons orpaste instead.

Во-вторых, использовать тот ORM, который тебе хочется, или даже просто прямые запросы (при этом без большей части php-шных болячек) - это совсем не больно.

deb
()
Ответ на: комментарий от KRoN73

А страницу выводим, запихнув html-код в python-файлы? И у кого тут PHP-мышление? :)

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

deb
()
Ответ на: комментарий от AGUtilities

Он медленнее будет. Я тести bottle.py с WSGI сервером от cherrypy. Могу кинуть результаты.

pi11 ★★★★★
() автор топика
Ответ на: комментарий от pi11

что-то как-то слишком жестоко. но дык это понятно, что на C быстрее :)

AGUtilities ★★★
()

Ждем для сравнения скорость отдачи статического «Hello, World» фронтэндом.

Вообще тест проведенный ТС подходит для единственной задачи (ни шаблонов, ни сколько-нибудь динамического содержимого - хотя бы hello world + counter, ни запросов к базе) - проверить жив ли еще бакенд (но для чего производительность в такой задаче).

anonymous
()
Ответ на: комментарий от pi11

Ну навскидку - если сервис тянет данные с API

А я не зря там выше расширил понятие до дата-бэкенда. Пофиг, из быстрой БД идут данные или через медленный API. Всё равно бутылочное горлышко будет тут.

KRoN73 ★★★★★
()

Offtop

Почитал я тут про php-мышление, про какие-то болячки php. И возник у меня вопрос, про какие-такие неприятности в php говорят все эти люди? Какие в php есть неприятности для нормального программиста? Я знаю пока только одну - в php порог вхождения мал, поэтому там куча школьников, которые создают много невнятного кода, но какое это имеет отношение к нормальному программисту?

Итак повторю вопрос, какие в php есть трудности для нормального программиста? (или все это просто популярный гон в попытке выделиться?)

anonymous
()
Ответ на: комментарий от KRoN73

Всё равно бутылочное горлышко будет тут.

Да скорее всего. Но хочется быть увереным, что оно там и на саму отдачу контента времени тратиться минимум.
Или это плохо?

pi11 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

да просто тоже самое отсутствие неймспейсов.

конечно, нормальный программист со всем справится и при помощи ассемблера, но зачем..?

AGUtilities ★★★
()
Ответ на: комментарий от anonymous

Какие в php есть неприятности для нормального программиста?

Нормальный программист - это тот, который напишет 100 строчек, учитывая все нюансы, там, где можно написать 5, и писать просто и не заморачиваясь?

в php порог вхождения мал, поэтому там куча школьников, которые создают много невнятного кода, но какое это имеет отношение к нормальному программисту?

На bottle.py создать законченное приложение намного проще и намного быстрее, чем на чистом php. Только php-измы по созданию велосипедов там не пройдут, в итоге человек потратит 30 минут, чтобы сделать как правильно, а не 5 минут, чтобы нагородить велосипед, и 3 дня, чтобы отладить так, чтобы этот велосипед работал.

Примеры? Ну те же sql-injection, которые легко допустит новичок в php, но с трудом реализует разработчик на bottle.py.

deb
()
Ответ на: комментарий от KRoN73

А я не зря там выше расширил понятие до дата-бэкенда. Пофиг, из быстрой БД идут данные или через медленный API. Всё равно бутылочное горлышко будет тут.

Это в php обязаловка на каждое действие запрос к бд делать. В bottle.py его можно хоть в памяти хранить, и он будет жить между запросами.

deb
()
Ответ на: комментарий от AGUtilities

конечно, нормальный программист со всем справится и при помощи ассемблера, но зачем..?

IMHO нормальный программист подберет инструмент под задачу с учетом реальных ограничений, а не своей гипертрофированной хотелки. И уж точно не будет чувствовать себя Д'артаньяном обсирая php.

http://php.net/manual/ru/language.namespaces.php

Не знаю, насколько это те неймспейсы, про которые ты говоришь, но что-то с таким названием в php есть.

P.S. Я реально хочу понять, насколько в php много реальный недостатков (то, что про него больше гона, чем конструктивной критики, я не сомневаюсь, но про реальные недостатки хочу знать). Своего опыта программирования в php у меня совсем мало.

anonymous
()
Ответ на: комментарий от anonymous

P.S. Я реально хочу понять, насколько в php много реальный недостатков

А какие в php реальные достоинства (не для запускальщика уже готовых приложений, а именно для разработчика)?

deb
()
Ответ на: комментарий от deb

Какие в php есть неприятности для нормального программиста?

Нормальный программист - это тот, который напишет 100 строчек, учитывая все нюансы, там, где можно написать 5, и писать просто и не заморачиваясь?

Я знаю про идиотский стиль общения отвечать вопросом на вопрос. И знаю как это работает на уровне психологии, и знаю когда это не работает совсем. По существу ответ будет?

На bottle.py создать законченное приложение намного проще и намного быстрее, чем на чистом php. Только php-измы по созданию велосипедов там не пройдут, в итоге человек потратит 30 минут, чтобы сделать как правильно, а не 5 минут, чтобы нагородить велосипед, и 3 дня, чтобы отладить так, чтобы этот велосипед работал.

Напомню, вопрос был про слабые стороны php. Зачем расписывать как хорош bottle.py? Я может на php собираюсь писать скрипты для администрирования.

Ну те же sql-injection, которые легко допустит новичок в php, но с трудом реализует разработчик на bottle.py.

О, ну, наконец. Можно было одной этой строчкой ограничиться.

anonymous
()
Ответ на: комментарий от deb

Это в php обязаловка на каждое действие запрос к бд делать.

Чет мне кажется такая обязаловка исключительно у тебя в мозгу. Я могу написать echo «Hello, World» и php ни в какую базу не полезет.

anonymous
()
Ответ на: комментарий от deb

А аналог от php есть?

Простота инструмента на Python для очень узкой области - это безусловно краеугольный недостаток php.

Такие аргументы мне не интересны. Мне нужен конструктив и исключительно в пределах конкретного вопроса. То, что для тебя bottle.py идеален, я уже понял, но выглядит это так, как будто ты сам в этом сомневаешься и, поэтому, пытаешься мне это доказать. Твоя задача, тебе и инструмент выбирать, тебе и с косяками разгребаться. Все остальным до этого нет дела.

Меня в этом треде интересуют высказывания про реальные косяки php.

anonymous
()
Ответ на: комментарий от anonymous

Я знаю про идиотский стиль общения отвечать вопросом на вопрос. И знаю как это работает на уровне психологии, и знаю когда это не работает совсем. По существу ответ будет?

Всё-то ты знаешь. Раз так, вот и ответь, кто такой нормальный программист. И почему, когда на каждое дело нужно делать кучу рутинных действий, называется «есть всё для нормального программиста».

Напомню, вопрос был про слабые стороны php. Зачем расписывать как хорош bottle.py? Я может на php собираюсь писать скрипты для администрирования.

Напомню, ответ был про то, что php лёгок для начинающих. Это неверно, php не так уж и лёгок для написания полноценного приложения начинающим - это раз, и bottle.py намного проще - это два.

deb
()
Ответ на: комментарий от anonymous

Чет мне кажется такая обязаловка исключительно у тебя в мозгу. Я могу написать echo «Hello, World» и php ни в какую базу не полезет.

Мальчик хочет в Тамбов. Чики чики да.

Для анонимусов повторяю второй раз.

Мы запросили скрипт для php. У нас заново сформировалось всё окружение, сделались все запросы, процесс умер. Всё, кончилось кино.

В bottle.py можно дёргать этот запрос только тогда, когда нужно, и держать его всё время в памяти - новое обращение может сразу посмотреть «а что у нас в памяти», а не дёргать заново. bottle.py не умирает после запроса, а продолжает работать всё время.

deb
()
Ответ на: комментарий от anonymous

что-то с таким названием в php есть

вот именно, что что-то - не понятно что. и это на фоне жабы и питона почти до неё доплюнувшего.

идём дальше.

приложения на php, не могут похвастаться нормальной документированностью, в то время как в питоне документирование является частью системы (http://docs.python.org/)

далее - пакеты и модули: в питоне красиво выполнены так, что и не хочется делать хреново, в отличии от php, в котором вообще анархия и разграй.

и почему, спрашивается, в php, в начале каждого файла, нужно писать

<?php
? да потому, что php изначально не задумывался для написания чего-то мощного, а задумывался как препроцессор текстовых файлов. причём, криво, так как utf-8 в нём так нормально и не работает.

AGUtilities ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.