golang程式效能分析

2021-08-19 04:54:10 字數 3552 閱讀 2364

vegeta是乙個用go語言編寫的多功能的http負載測試工具,提供命令列工具和開發包。安裝見vegeta 說明。

usage: vegeta [global flags] [command flags]

global flags:

-cpus int

使用cup的數量 (預設4 個)

-profile string

enable profiling of [cpu, heap]

-version

列印版本並退出

attack command:

-body string

請求的主體檔案

-cert string

tls客戶pem編碼的證書檔案

-connections int

沒個目標主機最大開啟閒置鏈結數 (預設10000)

-duration duration

持續攻擊時間 [0 = forever]

-header value

請求頭-insecure

忽略無效的伺服器tls證書

-keepalive

使用持久鏈結 (default

true)

-key string

tls客戶端pem編碼的私鑰檔案

-laddr value

本地ip位址 (default

0.0.0.0)

-lazy

延遲懶散的讀取目標

-output string

輸出檔案 (default

"stdout")

-rate uint

每秒請求數 (default

50) -redirects int

遵循重定向的次數.-1 不會遵循重定向但會標記為成功 (預設10)

-root-certs value

tls根證書檔案 (逗號分隔列表)

-targets string

目標檔案 (default

"stdin")

-timeout duration

請求超時時間 (default

30s)

-workers uint

初始化程序數 (default

10)report command:

-inputs string

輸入檔案 (comma separated) (default

"stdin")

-output string

輸出檔案 (default

"stdout")

-reporter string

表報字元格式 [text, json, plot, hist[buckets]] (default

"text")

text 文字格式

json json格式

plot 在 dygraphs 上生成乙個可以互動式的html5基礎頁面

hist 計算並列印乙個基於文字的直方圖

dump command:

-dumper string

dumper [json, csv] (default

"json") 指定轉儲格式

-inputs string

input files (comma separated) (default

"stdin") 指定轉儲含有統計結果的輸入檔案,多個逗號分隔

-output string

output file (default

"stdout") 指定把轉儲檔案寫入到輸出檔案

舉例: echo "get http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report

vegeta attack -targets=targets.txt > results.bin

vegeta report -inputs=results.bin -reporter=json > metrics.json

cat results.bin | vegeta report -reporter=plot > plot.html

cat results.bin | vegeta report -reporter="hist[0,100ms,200ms,300ms]"

注意

進行負載測試時,不能因為vegeta自身機器的效能瓶頸限制無法達到預期結果,例如開啟的檔案數、記憶體大小、cpu和網路頻寬,分布式的使用vegeta是非常好的解決方案。

命令

\n  }\n}"

, "variables":,

"operationname":"jobinfolist"

}

結果pprof常用作cpu、記憶體分析,需要使用pprof的場景

下面這張圖是cpu profile,可以清楚看到程式執行時的呼叫狀態,主要分析各個方法的耗時。下圖有些部分是虛線,是因為耗時比較少的節點沒有在圖上體現出來,但要把圖連起來,有的地方就使用虛線了。

上面的圖在呼叫鏈比較簡單的情況下,會比較直觀,但在如此複雜的呼叫鏈下,確實看著有點亂,使用uber開源的火焰圖絕對讓你開啟新世界的大門。命令

火焰圖展示

總結

python程式效能分析

目錄 python m cprofile o output file s sort order m module myscript.py o將結果輸出到檔案而不是stdout s排序狀態,選擇那些引數排序,常用 tottime m作為乙個模組而不是指令碼,python3.7的cprofile中有,p...

Go程式效能分析pprof

參考 go語言的pprof是google c profiler的移植,所以用法也差不多。這裡簡要記錄步驟如下 1.import runtime pprof 引用pprof package os func main 2.執行 執行程式,生成profile檔案 3.分析 在命令列上執行 go tool ...

php程式效能分析工具

平常開發一些效率要求比較高的功能模組時,常常需要分析程式的執行瓶頸在哪。用下面這個工具可以很方便的檢視php的指令碼執行過程。下面是配置步驟 1.php安裝xdebug,網上很多教程,下面貼上php.ini中的配置項 xdebug zend extension usr local php54 lib...