Посты с тэгом benchmark


Тестирование производительности Python ORM методом, основанном на бенчмарке TPC-C

При написании приложений на Python, для работы с базами данных часто используются объектно-реляционные мапперы (ORM). Примерами ORM являются SQLALchemy, PonyORM и объектно-реляционный маппер, входящий в состав Django. При выборе ORM довольно важную роль играет её производительность.


На Хабре, да и в интернете в целом, можно найти не один тест производительности. Как пример качественного бенчмарка python ORM можно привести бенчмарк от Tortoise ORM (ссылка на репозиторий). Данный бенчмарк анализирует скорость работы шести ORM для одиннадцати различных видов SQL-запросов.


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



Sexy primes, «медленный питон» или как я бился о стену непонимания


Многие разработчики, особенно принимающие активное участие в проектировании системы, наверняка сталкивались с подобной ситуацией: приходит коллега (разраб, проектлид или продажник не суть важно) с очередной идеей-фикс: давай перепишем все на java, scala и т.д. (любимое подставить).

Вот и мне в очередной раз «спустили» такую идею в немаленьком-таком legacy проекте. Не совсем переписать, не совсем все (ну в перспективе). В общем перейти с питона (а у нас там еще и тикль модульно присутствует) на scala. Речь пока шла о разработке новых модулей и сервисов, т.е. начинать с наименее привязанных к middle-level и front-nearby API's. Как я понял в перспективе возможно совсем.

Человек — не разработчик, типа нач-проекта и немного продажник (для конкретного клиента) в одном лице.

Я не то, что бы против. И скалу уважаю и по своему люблю. Обычно я вообще открыт ко всему новому. Так например, местами кроме тикля и питона у нас появляются сервисы или модули на других я


[Из песочницы] Оценка производительности конфигураций Django Session Engine


Думаю, все знают, что такое сессии в Django, не так ли? Без них довольно сложно представить разработку приложений. В них обычно хранят ID пользователя и какие-нибудь промежуточные данные. Ими пользуются чаще, чем задумываются о настройке способа их хранения. Конечно, настроек «по умолчанию», как правило, бывает достаточно для того, чтобы запустить практически любой проект. Однако пытливый ум требует узнать, какая из возможных конфигураций работает быстрее

В докуметации о Django очень подробно описывается, как работают различные Session Engine и как их настроить. В этой статье пойдёт речь о том, как я тестировал различные конфигурации развёртывания гипотетического проекта.
Чит


aiozmq benchmark -- обновление

Вчера написал измеритель производительностиaiozmq.

Аж пять тестов, три для pyzmq и два для aiozmq.

Сегодня захотел посмотреть, насколько правильные цифры они показывают.

Для оценки результатов измерений давным-давно была изобретена математическая статистика. Имея выборку (результаты нескольких замеров) вычисляем среднеквадратическое отклонениеи доверительный 95% интервал. Последний более понятен для интерпретации: если на пальцах то это тот диапазон, в кото



Оценка производительности aiozmq

Сделал "пузомерку" для сравнения производительности aiozmq и простоpyzmq.

aiozmq использует pyzmq в своих внутренностях и стало интересно узнать, какие тормоза добавляет связка aiozmq + asyncio по сравнению с "простыми zmq сокетами".

Тест делался для пары DEALER/ROUTER (RPC) в разных режимах.

Результаты запуска измерителя производительности:

(aiozmq)andrew@tiktaalik2:~/projects/aiozmq (master)$ python benchmarks/simple.py -n 10000
Run tests for 10*10000 iterations: ['aiozmq.rpc', 'core aiozmq', 'single thread raw zmq', 'single thread zmq with poller', 'zmq with threads']
..................................................

Results for aiozmq.rpc
RPS: 2469, average: 0.405 ms


Python / Исследование производительности сервера SockJS

Доброе время суток!

Так уж сложилось, что я занимаюсь всякими разнообразными push технологиями с использованием Tornado. Чуть ранее описывал Tornadio2, серверную реализацию протокола socket.io поверх Tornado.

Теперь хочу представить похожий проект — sockjs-tornado.

Для тех кому не очень интересно, есть другая полезная информация: сравнительное нагрузочное тестирование PyPy 1.7 против CPython 2.6.6, sockjs-node и socket.io (оба на node.js 0.6.5). Все под катом :-)