я унаследовал унаследованное приложение со следующей структурой:Параметры профилирования для приложения gunicorn/Pyramid?
gunicorn (с 64 работниками) запускаются и указал на приложении paste.deploy, который выглядит следующим образом:
from paste.deploy import loadapp
import gevent
import json
def ohmygod():
while 1:
time.sleep(30)
horrible, extremely expensive debugging function()
gevent.spawn(ohmygod)
application = loadapp('config:scripts/production.ini', relative_to='/blah')
производительности Этого приложения является бизнесом но мои попытки удалить этот код нуждаются в каких-то профилирующих доказательствах.
Я немного из моей лиги, когда дело доходит до отладки геев внутри пушки.
Если я создал cProfiler внутри этой функции, он бы взял данные извне gentent, то есть .: из основного? Я думаю, это было бы желательно.
Еще одна проблема заключается в том, что я не могу изменить производственный код. У меня есть доступ к тестовым средам, но я не могу реплицировать прямой трафик. Можно ли безопасно подключаться к пусковым процессам и профилировать их без изменения производственного кода?
Любые советы или идеи, которые очень ценятся.
gunicorn v18.0, GEvent v1.0.1, пирамида 1.4.5, Python 2.7.6, работающие на Ubuntu 12 x64
[* Попробуйте это. *] (Http://stackoverflow.com/a/4299378/23771) Это ничего не будет стоить вам. На самом деле есть много [* математического обоснования *] (http://scicomp.stackexchange.com/a/2719/1262), если это поможет. –