2010-11-11 60 views
4

我希望能夠測試Python應用程序,以便我知道:是否有生產安全的方法來衡量在生產w/Python中花費的時間?

  • 頁面生成時間。
  • 在外部請求(mysql,api調用)中花費的時間百分比。
  • MySQL查詢的數量,MySQL查詢的數量。

我想從生產(而不是離線分析)這個數據 - 因爲在不同的地方花費的時間會有不同的負載下。

在PHP中,我可以用XHProf或instrumentation-for-php來做到這一點。在Ruby on Rails/.NET/Java中,我可以使用New Relic來實現。

是否有這樣的軟件包推薦用於Python或Django?

回答

1

是的,這是完全可能的。例如。在URL中使用一些魔術開關,如「?profile-me」,這會觸發Django中間件中的分析。

互聯網上有很多片段,像這樣:http://djangosnippets.org/snippets/70/或像這樣的模塊:http://code.google.com/p/django-profiling/ - 但我沒有使用它們中的任何一個,所以我不能推薦任何東西。

無論如何,他們採取的方法與我所做的相似 - 即在包裝視圖的中間件中使用Python Hotshot profiler模塊。對於MySQL部分,您可以使用形式爲Django的connection.queries

約炙手可熱的好處是,它的輸出可通過Kcachegrind喜歡這裏進行瀏覽:http://www.rkblog.rk.edu.pl/w/p/django-profiling-hotshot-and-kcachegrind/

+1

我跟着Django的分析到Django的日誌項目 - 這已不再維護:(我想低影響採伐 - 我想自動登錄請求,很大比例的 - 不只是我自己 – 2010-11-11 20:16:02

+0

connection.queries將不會工作,除非DEBUG = True,這不應該在生產中完成,因爲它將每個查詢(加上相關的時序/堆棧跟蹤以及更多)存儲在內存中 – kkaehler 2013-01-08 19:55:24

相關問題