Быстрые аналоги популярных библиотек для Python

Так получилось, что несколько месяцев я пытался серьёзно использовать в качестве сервера, железку на ARM процессоре.Об этом я писал тут и тут.Производительности мне часто не хватало, и я находил и искал различные альтернативы, часто активно использующие C/C++. Парочка библиотек под катом.a12340dddf80f64deb537e526b9bc733.jpgЗаранее прошу прощения если все уже знают об этом, но я вот только недавно раскопал эти либы.JSONВот куда сейчас без него? Для веб приложений это по сути основной формат. Сервер должен уметь быстро преобразовывать python структуры в JSON и отдавать браузерам или устройствам. Наверное большинство делают import json и у них всё замечательно…А вот если надо в разы быстрее тогда встречайте ujson. Порядки ускорения можно глянуть по ссылке, но на ARM по сути использование ujson позволило сократить время запроса с нескольких секунд до Если у вас в JSON много текста не на английском языке то крайне выгодно использовать параметр ensure_ascii=False для функции dumps. Дело в том, что по умолчанию текст кодируется в JSON при помощи \u нотации что приводит к 6–8 байтам на один символ, а так можно всё отдавать чисто в utf-8, что уменьшает отдаваемый JSON в 2 или 3 раза (даже если используется gzip).FeedParser Многие наверно использовали эту библиотеку для того что бы парсить RSS, ATOM и т.д. Её производительность и раньше меня напрягала, а теперь я вообще не мог ей нормально пользоваться, так как парсиниг одной RSS мог длится минуту. На помощь мне пришёл SpeedParser, он позволил сократить время разбора RSS до нескольких секунд. В целом по синтаксису он совместим с FeedParser, но поведение сильно отличается. К примеру он не видит кастомные namespace или игнорит которых нету в его списке (который жёстко забит в либе). Для правки некоторых ошибок мы применили MonkeyPatching (увы).GZIP Нельзя использовать максимальные значения, а лучше крутиться вокруг коэффициента 5. Ниже уже на скорость начинает сильно влиять размер, а выше уже сильно замедляет формирование контента на отдачу.Frameworks Чем меньше оверхеда тем лучше. Не пытайтесь разворачивать крупные фреймворки, они работать будут, но уже на паре другой человек всё встанет колом. Разница между Pylons и Tornado на пустой странице 3 раза.Как то так.Продолжение истории с чатом тут: habrahabr.ru/post/228703/.

ЗЫ в тексте много жаргонизмов, простите, но мне так приятнее писать.ЗЫ2 ошибок скорее всего так же много, пишите в личку если найдёте.

© Habrahabr.ru