cProfile Python效能分析工具

2022-02-19 00:48:39 字數 1213 閱讀 7241

python自帶了幾個效能分析的模組:profile、cprofile和hotshot,使用方法基本都差不多,無非模組是純python還是用c寫的。本文介紹cprofile。

例子

import

time

deffunc1():

sum =0

for i in range(1000000):

sum +=i

deffunc2():

time.sleep(10)

func1()

func2()

執行

python -m cprofile del.py
執行結果

結果分析

執行了6個函式,總共花費了10.138s,按著執行函式名字排序為結果輸出。

執行指令碼

python -m cprofile -o del.out del.py
這裡以模組方式直接儲存profile結果,可以進一步分析輸出結果,執行

python -c "

import pstats; p=pstats.stats('del.out'); p.print_stats()

"

結果(隨機)

可以設定排序方式,例如以花費時間多少排序

sort_stats支援以下引數:

calls, cumulative, file, line, module, name, nfl, pcalls, stdname, time
pstats模組還支援互動式

原子性 一致性 隔離性 永續性

事務是指對系統進行的一組操作,為了保證系統的完整性,事務需要具有acid特性,具體如下 1.原子性 atomic 乙個事務包含多個操作,這些操作要麼全部執行,要麼全都不執行。實現事務的原子性,要支援回滾操作,在某個操作失敗後,回滾到事務執行之前的狀態。回滾實際上是乙個比較高層抽象的概念,大多數db在...

原子性一致性隔離性永續性

事務是指對系統進行的一組操作,為了保證系統的完整性,事務需要具有acid特性,具體如下 1.原子性 atomic 乙個事務包含多個操作,這些操作要麼全部執行,要麼全都不執行。實現事務的原子性,要支援回滾操作,在某個操作失敗後,回滾到事務執行之前的狀態。回滾實際上是乙個比較高層抽象的概念,大多數db在...

原子性 冪等性

原子性 如果這個操作所處的層 layer 的更高層不能發現其內部實現與結構,那麼這個操作是乙個原子 atomic 操作。原子操作可以是乙個步驟,也可以是多個操作步驟,但是其順序不可以被打亂,也不可以被切割而只執行其中的一部分。將整個操作視作乙個整體是原子性的核心特徵。冪等性 再簡單一點說,在乙個業務...