VisualPyTune 發布第一個穩定版!
估計每一個遇到過 Python 效能問題的朋友們都使用過 profile、pstats、timeit 等模組吧?對於被 GUI 伺候慣了的我們,使用這些命令列工具就有點麻煩了。要記住數以十計的參數,要記得每一個類的方法名稱。強大如pstats.Stats.sort_stats() 函數,記住它的可用參數實在是一件折磨人的事兒。又比如在命令列執行 timeit 的時候,沒有自動縮排,更別提文法著色,甚至不能換行,通常都是錯了三四次後才能完成任務。因此,筆者在深受其害之後痛定思痛,開發了自由免費的 Python 效能調優工具——VisualPyTune(項目首頁http://visualpytune.googlecode.com),簡稱 VPT。
VisualPyTune的主要功能有:
1) 剖分資料報表瀏覽:能夠方便地對資料排序和過濾資料;以餅圖表現callees 函數的剖分資料;查看函數的 callers 和callees 。
2) 整合圖形化的剖分嚮導,不用記憶任何剖分器的參數。
3) 整合圖形化的 timeit 功能,再也不用記憶 timeit 的參數;文法高亮的代碼編輯器可以讓你輕鬆撰寫代碼。
4) 支援輸出資料為純文字檔案,以備日後參考。
現在,VPT 發布 0.1.2版啦!這是第一個穩定版本,相容 windows 和 linux 作業系統,經網友友情測試,也 Mac OS x 下也可以穩定運行,現在就想試試的朋友,請猛擊以下地址下載:http://code.google.com/p/visualpytune/downloads/list。
圖形化的效能剖分介面
對已經完成的項目進行效能剖分有兩種方式:一是修改現有代碼,引入剖分器,然後運行之;二是通過設定 Python 解譯器的運行參數來進行剖分。(關於這一點,請參考拙作《[python]用profile協助程式效能最佳化》,地址:http://blog.csdn.net/lanphaday/archive/2007/01/15/1483728.aspx )。VisualPyTune 基於第二種剖分方式構建了可視化的圖形效能部分器,簡單配置一下,完全不用記憶參數,更不用修改代碼了,實在是首選啊。
註:據我在 ubuntu 上的測試和根據網路文章,發現在 linux 的Python 在 2.5 版本及之後,已經去掉了 profile 模組和 pstats等模組,造成 VisualPyTune 無法進行效能剖分。所以大家要手動安裝一下 profile 模組。在ubuntu 或者 debian 系統上簡單地:sudo apt-get install python-profile 就行了。使用其它作業系統的朋友請查詢服務供應商或 Google。
簡潔多樣的資料瀏覽方式
進行效能剖分之後,我們迫不及待地想看看這些資料。以前使用 pstats 模組查看剖分資料報表的時候非常痛苦,載入時間長,字元報表不夠直觀,每一次新的需求都要再經曆一次痛苦的長時間載入等待。實在是苦不堪言。VPT 改變了這樣的局面,一次載入就可以讓資料在你的手中隨意“翻看”。你可以隨時讓資料按你喜歡的方式排序,也可以非常方便地查看選定的函數的 callers 和 callees。特別是 callees,你還可以通過直觀的餅圖來找查看剖分情況。這在字元介面時代是不可想象的。
註:要使用此功能,linux 使用者必須安裝 profile 模組。方法請參考上一節。
圖形化的Timeit
timeit 模組肯定是效能敏感人士的最愛,它可以極方便地評測簡單程式碼片段的效能。可惜的是在命令列使用 timeit 的時候需要加倍小心,特別是程式碼片段比較複雜的時候,往往要多次嘗試後才能正確地輸入。VPT 裡內建的圖形化的 Timeit 打破了這一僵局,它內建了有程式碼摺疊功能和文法著色的代碼編輯器,我們可以評測更為複雜的程式碼片段啦!
從現在開始,享受 VisualPyTune 吧!