это работает если ты делаешь запрос и получаешь простой ответ. Если в ответ умный объект возвращается, который имеет ручки по которым может делать http запросы, то уже так не получится
простой пример -- возвращается пагинированный список объектов. метод next() вернет объект или если страница закончена, то надо идти, загружать следующую страницу, и возвращать объект уже из неё
простой пример -- возвращается пагинированный список объектов. метод next() вернет объект или если страница закончена, то надо идти, загружать следующую страницу, и возвращать объект уже из неё
Хм, ну да, тут будет геморой - придётся дублировать как минимум структуру всех объектов. Хотя такое тоже делают автоматом (декоратором или метаклассами).
Вроде motor как-то так делает - он просто заворачивает синхронные версии классов из pymongo в асинхронную обёртку в которой прописанно, какие именно методы класса надо сделать асинхронными.
Клевого типа py-spy я ничего для памяти не нашел, а memory-profiler ты наверняка и так знаешь. Но вообще похоже что все с pympler упражняются, который Антон тут советовал недавно
Спасибо. Хотелось что-то, что умеет строить профилировать память и строить флэймграфы, но с таким как-то не густо. В итоге заюзал austin. Умеет цепляться к запущенному процессу, выплёвывать в формате для flamegraph.pl. Ещё есть обвязка austin-tui чтобы в реалтайме смотреть
Спасибо. Хотелось что-то, что умеет строить профилировать память и строить флэймграфы, но с таким как-то не густо. В итоге заюзал austin. Умеет цепляться к запущенному процессу, выплёвывать в формате для flamegraph.pl. Ещё есть обвязка austin-tui чтобы в реалтайме смотреть
Спасибо. Хотелось что-то, что умеет строить профилировать память и строить флэймграфы, но с таким как-то не густо. В итоге заюзал austin. Умеет цепляться к запущенному процессу, выплёвывать в формате для flamegraph.pl. Ещё есть обвязка austin-tui чтобы в реалтайме смотреть
ещё есть https://github.com/nvdv/vprof но я что-то не разобрался сходу, как через него запустить что-то самостоятельно не завершающееся - если сделать vprof webserver.py и потом его кильнуть SIGINT-ом, то данные не соберутся.
к слову про pprof, тут есть такое :) https://github.com/timpalpant/pypprof но его сходу даже запустить не получилось. ну и это, звёздочек мало и проект заброшенным выглядит
В кратце: пишешь только асинхронную версию, а потом кодогенерируешь синхронную. Автор статьи так сделал для клиента эластиксерча. В целом и на тесты распространяется, не только на основной код
А куда ещё четыре часа делись, когда я скрип переделывал для связи не рабочего RQM c Jira и Jenkins! У меня на коммитах время проставлено, и в тестовых артефактах оно есть!