我做了一個客戶端應用程序,它使用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