我做了一个客户端应用程序,它使用HTTP通过一个简单的API与Python 2服务器进行通信。服务器相当广泛地使用SQLAlchemy的ORM来为这些HTTP请求提供数据。问题是即使只有很少的活动客户端,我的CPU使用率也非常高。这台服务器应该能够在每个客户端大约1次请求的同时为几百个客户端提供服务,所以它应该仍然是可管理的(或者我希望)。如何提高SQLAlchemy的性能?
我该如何提高性能?我知道问题是ORM,因为cProfile很清楚地显示了这一点。一个查询显然会执行大约10000条Python指令,这似乎很奇怪。我尝试插入不同的数据库引擎/后端,并将解释器更改为Pypy,但它显然无助于原始问题,也未改善性能。
我在这里做错了什么?我真的希望这是一个“好的,杜!”问题。
我的关系应该是不同的类型?渴望,懒惰,动态等?现在,我没有具体说明任何内容。
非常感谢。
看看我的答案http://stackoverflow.com/questions/1171166/how-can-i-profile-a-sqlalchemy-powered-application/1175677#1175677一些地方开始 – zzzeek 2012-04-03 19:38:05