1. 程式人生 > >利用PyCharm的Profile工具進行Python效能分析

利用PyCharm的Profile工具進行Python效能分析

Profile:

PyCharm提供了效能分析工具Run-》Profile,如下圖所示。利用Profile工具可以對程式碼進行效能分析,找出瓶頸所在。

測試:

下面以一段測試程式碼來說明如何使用pycharm的Profile功能。

測試程式碼見下文,檔案命名為Test.py, 一共有5個函式,每個函式都呼叫了time.sleep進行延時,其中fun5函式呼叫了fun4函式:

import time

def fun1(a, b):
    print('fun1')
    print(a, b)
    time.sleep(1)

def fun2():
    print('fun2')
    time.sleep(1)

def 
fun3(): print('fun3') time.sleep(2) def fun4(): print('fun4') time.sleep(1) def fun5(): print('fun5') time.sleep(1) fun4() fun1('foo', 'bar') fun2() fun3() fun5()

點選Run-》Profile開始測試,程式碼執行結束後會生成一欄測試結果,測試結果由兩部分構成,Statistcs(效能統計)和Call Graph(呼叫關係圖):

Statistcs(效能統計):

效能統計介面由Name、Call Count、Time(ms)、Own Time(ms) 4列組成一個表格,見下圖。

1. 表頭Name顯示被呼叫的模組或者函式;Call Count顯示被呼叫的次數;Time(ms)顯示執行時間和時間百分比,時間單位為毫秒(ms)。

2.點選表頭上的小三角可以升序或降序排列表格。

3.在Name這一個列中雙擊某一行可以跳轉到對應的程式碼。

4.以fun4這一行舉例:fun4被呼叫了一次,執行時間為1000ms,佔整個執行時間的16.7%

Call Graph(呼叫關係圖):

Call Graph(呼叫關係圖)介面直觀展示了各函式直接的呼叫關係、執行時間和時間百分比,見下圖。

0.右上角的4個按鈕表示放大、縮小、真實大小、合適大小;

1.箭頭表示呼叫關係,由呼叫者指向被呼叫者;

2.矩形的左上角顯示模組或者函式的名稱,右上角顯示被呼叫的次數;

3.矩形中間顯示執行時間和時間百分比;

4.矩形的顏色表示執行時間或者時間百分比大小的趨勢:紅色 > 黃綠色 > 綠色,由圖可以看出fun3的矩形為黃綠色,fun1為綠色,所有fun3執行時間比fun1長。

5.從圖中可以看出Test.py直接呼叫了fun3、fun1、fun2和fun5函式;fun5函式直接呼叫了fun4函式;fun1、fun2、fun3、fun4和fun5都直接呼叫了print以及sleep函式;整個測試程式碼執行的總時間為6006ms,其中fun3的執行時間為1999ms,所佔的時間百分比為33.3%,也就是 1999ms /  6006ms = 33.3%。

--------------------- 本文來自 xiemanR 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/xiemanR/article/details/69398057?utm_source=copy