Go pprof與效能分析

2021-10-24 05:57:53 字數 3190 閱讀 2078

pprof是非常好用的效能分析工具

非 服務

類程

序\red

非服務類程式

源**:

package main

import

("fmt"

"time"

)func

dfs(ans *

int,path [

]int

,sum int

,k int

)if sum == k

for i:=

1;i<

10;i++

}func

solve

(k int)[

][]int

func

main()

cpu

效能分析

:\red

cpu效能分

析:

package main

import

("flag"

"fmt"

"log"

"os"

"runtime/pprof"

"time"

)var cpuprofile = flag.

string

("cpuprofile",""

,"write cpu profile to file"

)func

dfs(ans *

int,path [

]int

,sum int

,k int

)if sum == k

for i:=

1;i<

10;i++

}func

solve

(k int)[

][]int

func

main()

_= pprof.

startcpuprofile

(f)defer pprof.

stopcpuprofile()

} start := time.

now(

) fmt.

println

(len

(solve(24

))) fmt.

println

(time.

since

(start)

)}

程式執行完畢後:

go tool pprof algorithm cpuprofile.prof

top10 # 前10個

top5 -cum # 按cum排序

web # 輸出**件

web growslice # 檢視特定函式的**件

mem

效能分析

:\red

mem效能分

析:

package main

import

("flag"

"fmt"

"log"

"os"

"runtime/pprof"

"time"

)var cpuprofile = flag.

string

("cpuprofile",""

,"write cpu profile to file"

)var memprofile = flag.

string

("memprofile",""

,"write memory profile to this file"

)func

dfs(ans *

int,path [

]int

,sum int

,k int

)if sum == k

for i:=

1;i<

10;i++

}func

solve

(k int)[

][]int

func

main()

_= pprof.

startcpuprofile

(f)defer pprof.

stopcpuprofile()

} start := time.

now(

) fmt.

println

(len

(solve(24

))) fmt.

println

(time.

since

(start))if

*memprofile !=""_

= pprof.

(f)defer pprof.

stopcpuprofile()

}}

程式執行完畢後:

go tool pprof algorithm memprofile.mprof

top5 # 列出top5

list main.dfs # 列出函式dfs

對於服

務型別,

需要在m

ain文

件中加入

:\red

對於服務型別

,需要在

main

檔案中加

入:

import

()}

在服務執行後,來分析資料:

/debug/pprof/heap進入命令互動潔面,top檢視占用比:

/debug/pprof/heap > heap_inuse.svg參考:

profiling go programs + 優秀中文翻譯

【實踐】使用go pprof做記憶體效能分析

go pprof效能調優

golang 大殺器之效能剖析 pprof

PHP 效能分析與實驗 效能的巨集觀分析

摘要 編者按 此前,閱讀過了很多關於 php 效能分析的文章,不過寫的都是一條一條的規則,而且,這些規則並沒有上下文,也沒有明確的實驗來體現出這些規則的優勢,同時討論的也側重於一些語法要點。本文就改變 php 效能分析的角度,並通過例項來分析出 php 的效能方面需要注意和改進的點。編者按 此前,閱...

效能測試指標 效能測試需求分析與指標分析

一般而言,被測物件的效能要求,會在使用者需求規格說明書中給出,如單位時間內的訪問量需達到多少,業務響應時間不超過多少,業務成功率不低於多少,硬體資源耗用要在乙個合理的範圍中,效能指標以量化形式給出。對於相對規範的產品,產品團隊一般會給出類似的要求 壓測後,滿足相關指標,則測試通過,若不滿足,則需要分...

PHP 效能分析與實驗

對 php 效能的分析,我們從兩個層面著手,把這篇文章也分成了兩個部分,乙個是巨集觀層面,所謂巨集觀層面,就是 php 語言本身和環境層面,乙個是應用層面,就是語法和使用規則的層面,不過不僅 規則,更輔助以示例的分析。巨集觀層面,也就是對 php 語言本身的效能分析又分為三個方面 php 作為解釋性...