大家好,這是本系列 PyCharm 的高效使用技巧的第三篇。按照慣例,本次還是分享 5 個。
11. 一鍵進行程式碼效能分析
在 Python 中有許多模組可以幫助你分析並找出你的專案中哪裡出現了效能問題。
比如,常用的模組有 cProfile,在某些框架中,也內建了中介軟體幫助你進行效能分析,比如 Django ,WSGI。
做為Python 的第一 IDE, PyCharm 本身就支援了這項功能。而且使用非常方便,小白。
假設現在要分析如下這段程式碼的效能損耗情況,找出到底哪個函式耗時最多
import time
def fun1():
time.sleep(1)
def fun2():
time.sleep(1)
def fun3():
time.sleep(2)
def fun4():
time.sleep(1)
def fun5():
time.sleep(1)
fun4()
fun1()
fun2()
fun3()
fun5()
點選 Run -> Profile '程式' ,即可進行效能分析。
執行完畢後,會自動跳出一個效能統計介面。
效能統計介面由Name、Call Count、Time(ms)、Own Time(ms) ,4列組成一個表格,見下圖。
- 表頭Name顯示被呼叫的模組或者函式;Call Count顯示被呼叫的次數;Time(ms)顯示執行時間和時間百分比,時間單位為毫秒(ms)。
- 點選表頭上的小三角可以升序或降序排列表格。
- 在Name這一個列中雙擊某一行可以跳轉到對應的程式碼。
- 以fun4這一行舉例:fun4被呼叫了一次,執行時間為1000ms,佔整個執行時間的16.7%
點選 Call Graph(呼叫關係圖)介面直觀展示了各函式直接的呼叫關係、執行時間和時間百分比,見下圖。
右上角的4個按鈕表示放大、縮小、真實大小、合適大小;
- 箭頭表示呼叫關係,由呼叫者指向被呼叫者;
- 矩形的左上角顯示模組或者函式的名稱,右上角顯示被呼叫的次數;
- 矩形中間顯示執行時間和時間百分比;
- 矩形的顏色表示執行時間或者時間百分比大小的趨勢:紅色 > 黃綠色 > 綠色,由圖可以看出fun3的矩形為黃綠色,fun1為綠色,所有fun3執行時間比fun1長。
- 從圖中可以看出Test.py直接呼叫了fun3、fun1、fun2和fun5函式;fun5函式直接呼叫了fun4函式;fun1、fun2、fun3、fun4和fun5都直接呼叫了print以及sleep函式;整個測試程式碼執行的總時間為6006ms,其中fun3的執行時間為1999ms,所佔的時間百分比為33.3%,也就是 1999ms / 6006ms = 33.3%。
12. 使用Git做版本控制
按照如下提示點選 Git 倉庫配置
接著輸入倉庫地址
點選 Test,測試連通性,會要求輸入密碼
若一切順利,則會看到如下介面
測試連線成功後,點選 Clone 就可以克隆下來了。
對於以前使用 Git 命令來管理的,現在可以直接使用 PyCharm 的選單欄來操作,這些功能已經可以滿足大多數人的日常需求了,應該是夠用了。
13 Tab輕鬆轉空格
在團隊協作中,你難免會動到別人編輯的檔案,有的人喜歡做tab做縮排,有的人喜歡用四個空格做縮排。
但是在同一個Python檔案模組裡,tab 和 四個空格縮排兩種風格是不能共存的。這就需要你按照該檔案原來的縮排風格來進行編碼,在 Pycharm 裡,可以設定自動檢測原檔案的縮排風格來決定當你使用tab鍵縮排的時候,是TAB還是四個空格。
在圖示位置打勾即可開啟自動檢測。
上面是對一箇舊的 Python 模組進行修改時,如何決定當前編輯的縮排方式。
而對於新建模組,預設的縮排方式,是如何確定的?
如下圖,若在 Use tab character
打上勾,則你新建一個 Python 後,就會使用 TAB 進行縮排,反之,則使用四個空格進行縮排。
14. 一次註冊,永久啟用
PyCharm 有分兩個版本,一個是社群版(免費功能有限),一個是專業版(有一些增強功能),詳細差異你可以參考這個圖,一般來說,社群版用作學習用途是沒有問題的。
如果需要使用專業版,網上也有一些註冊伺服器使用,非常方便,缺點是過一段時間,可能就會失效。這裡有一種一勞永逸的方法,但可能僅對早期的 PyCharm 版本有效,可以實現永久啟用(到 2099 / 2100年,一定意義上是永久了吧)。
經過我個人親測,以下破解jar包,Windows 中在 2017.1.5 版本中有效,Mac OS 在2018.2.4 版本中有效。如果你在自己的版本中嘗試無效,可以嘗試切換至我的版本。
以下將分別以 Mac OS 和 Windows兩個主流系統做演示。
第一步:
下載jar包: 此jar包的目的就是讓截獲截止時間並騙過 PyCharm;
Windows 點此下載 密碼:lvyv
Mac OS 點此下載,密碼:5o4s
第二步:
若是 Windows 系統,請找到並進入你的 PyCharm 安裝啟動目錄(以我的為例):E:\Program Files\JetBrains\PyCharm 2017.1.5\bin
將第一步下載的 jar 包放入這個目錄,並開啟如下兩個以 vmoptions
字尾結尾的檔案:
新增如下這一行(請根據你的實際安裝目錄自行調整)
若是 Mac OS 系統,請找到並進入你的 Pycharm 安裝啟動目錄(以我的為例)
將第一步下載的 jar 包放入這個目錄
並開啟如下一個以 vmoptions
字尾結尾的檔案:
第三步:
隨意填寫個啟用碼,如果此前已經有寫過,這步可直接跳過到第四步,如果沒有寫過,你就填這個吧。
點選:Help -> Register -> Activation Code
BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiQUMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEUE4iLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJSQyIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEQiIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9XSwiaGFzaCI6IjQ3NzU1MTcvMCIsImdyYWNlUGVyaW9kRGF5cyI6MCwiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-iygsIMXTVeSyYkUxAqpHmymrgwN5InkOfeRhhPIPa88FO9FRuZosIBTY18tflChACznk3qferT7iMGKm7pumDTR4FbVVlK/3n1ER0eMKu2NcaXb7m10xT6kLW1Xb3LtuZEnuis5pYuEwT1zR7GskeNWdYZ0dAJpNDLFrqPyAPo5s1KLDHKpw+VfVd4uf7RMjOIzuJhAAYAG+amyivQt61I9aYiwpHQvUphvTwi0X0qL/oDJHAQbIv4Qwscyo4aYZJBKutYioZH9rgOP6Yw/sCltpoPWlJtDOcw/iEWYiCVG1pH9AWjCYXZ9AbbEBOWV71IQr5VWrsqFZ7cg7hLEJ3A==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9
第四步:
若是 Windows 系統,重啟 PyCharm 後,檢視啟用資訊:Help -> About
如果是 Mac OS 系統,重啟 PyCharm 後,檢視啟用資訊:PyCharm -> About PyCharm
另外,以上僅做交流和個人學習使用,請勿商用,有能力的朋友還是希望多支援正版!
15. 原始碼文件,快速預覽
Ctrl + 滑鼠左鍵 (Mac 上是:Command + 滑鼠左鍵),可以實現函式跳轉檢視原始碼, 這幾乎是每一個 PyCharmer 都會的一個慣用技巧。
這裡再另外介紹兩個類似的小技巧,快速 檢視函式文件
和 預覽原始碼
。
在函式的開頭處,使用三個引號 "
包含的內容,叫做函式文件 (DocString)。
在編寫程式碼時,順便寫好函式的介面文件,是一個很好的編碼習慣。它介紹了該函式的引數型別及說明,返回值型別及範例,寫得好一點的還會寫出 幾個簡單的 Example Usage 有助於理解使用。在這一點上,Flask 可以說做得相當好。這邊隨便截一個 Werkzeug 的例子。
假如我們在使用這個類的時候,忘記了這個用法,可以按住 Ctrl + q(Mac暫時未找到對應快捷鍵),在當前頁面就可以快速預覽 LocalStack 的介面文件。
同樣的,如果你對這個類或者函式的程式碼邏輯感興趣,也可以使用快速預覽的方式在當前頁面展示原始碼。快捷鍵是:Ctrl + shift + i (Mac:Command + shift + i)。效果如下
如果 PyCharm 檢測到的同名函式有多個,可以點這裡進行選擇檢視
這兩個快捷鍵比起使用 Ctrl + 滑鼠左鍵 跳進原始碼來說,更加方便,,就像微信小程式一樣,用完即焚,不會新產生一個標籤頁,也不需要來回跳轉頁面。