我從來沒有在Python中完成代碼覆蓋,但我正在尋找類似GCC
的gcov
,它告訴我每行執行多少次,或者Apple的鯊魚給出了每個函數使用多長時間的層次分解。分析活Django服務器?
我的問題是,我有一個正在經歷高負載的活服務器,並且我無法從日誌中知道是什麼導致它。我想附加一些東西給我的Django實例來監視哪些行是最熱的和/或哪些函數花費的時間最長。
這是類似的,但不完全是代碼覆蓋率。我想介紹它到一個實時運行的服務器,最好不要修改太多。
想法?
我從來沒有在Python中完成代碼覆蓋,但我正在尋找類似GCC
的gcov
,它告訴我每行執行多少次,或者Apple的鯊魚給出了每個函數使用多長時間的層次分解。分析活Django服務器?
我的問題是,我有一個正在經歷高負載的活服務器,並且我無法從日誌中知道是什麼導致它。我想附加一些東西給我的Django實例來監視哪些行是最熱的和/或哪些函數花費的時間最長。
這是類似的,但不完全是代碼覆蓋率。我想介紹它到一個實時運行的服務器,最好不要修改太多。
想法?
CPROFILE + RunSnakeRun: http://www.vrplumber.com/programming/runsnakerun/
我用這個模式:一個監控線程寫入蹤跡日誌文件每0.3秒。幾個小時後,我可以看到解釋者花費最多的時間。它不會減慢我的服務器:
Django-live-profiler是一個下拉Django的應用程序,讓您使用statprof配置文件運行的應用程序和可視化的結果。
如何將cProfile附加到正在運行的Django進程? – Joe
您無法將分析器附加到正在運行的進程。你需要從'cProfile.py'啓動django進程:http://docs.python.org/library/profile.html#instant-user-s-manual – catavaran
是的,答案是擺弄我的啓動腳本,並把這在英寸不是非常干擾。謝謝! – Joe