天天看點

《Python高性能程式設計》——2.11 用dowser實時畫出變量的執行個體

本節書摘來自異步社群《python高性能程式設計》一書中的第2章,第2.11節,作者[美] 戈雷利克 (micha gorelick),胡世傑,徐旭彬 譯,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

robert brewer的dowser可以在代碼運作時鈎入名字空間并通過cherrypy接口在一個web伺服器上提供一個實時的變量執行個體圖。每個被追蹤對象都有一個走勢圖,讓你可以看到某個對象的數量是否在增長。這在分析長期運作的程序時很有用。

如果你有一個長期運作的程序且你預計程式的不同操作會帶來不同的記憶體變化(比如你可能想對一台web伺服器上傳一些資料或跑一些複雜的查詢),那麼你可以實時确認這些變化,見圖2-9。

要使用它,我們需要在julia代碼中加入輔助函數(例2-14)用來啟動cherrypy伺服器。

《Python高性能程式設計》——2.11 用dowser實時畫出變量的執行個體

例2-14 在應用中啟動dowser的輔助函數

在開始計算之前,我們需要首先啟動cherrypy伺服器,如例2-15所示。完成計算後,我們可以調用time.sleep維持控制台打開——這會讓cheerypy程序保持運作,讓我們可以繼續審查名字空間的狀态。

例2-15 在正确的時機啟動dowser,這會啟動一個web伺服器

點選圖2-9中的trace連結,我們就可以看到每個list對象的内容(圖2-10)。我們還可以繼續深入每個list内部 ——這就像在ide中使用一個互動調試器一樣,但是你可以在一台伺服器上進行而不需要一個ide。

《Python高性能程式設計》——2.11 用dowser實時畫出變量的執行個體

繼續閱讀