ホームページ  >  記事  >  バックエンド開発  >  golangのCPUパフォーマンス解析について

golangのCPUパフォーマンス解析について

藏色散人
藏色散人転載
2020-12-25 16:04:183065ブラウズ

次のコラム golang チュートリアル では、golang の CPU パフォーマンス分析について紹介します。困っている友人の役に立てば幸いです。

golangのCPUパフォーマンス解析について

1. プログラムの実行時間を分析します

(1) time コマンド (Linux システム下)

time go run a.go

real: Startプログラムから最後まで、実際に費やした時間

user: プログラムがユーザー態度で費やした時間

sys: プログラムがカーネルで費やした時間

一般的な状況 real>=user sys

(2) /usr/bin/time コマンド (Linux システム下)

/usr/bin/time -v go run a.go

このコマンドで、CPU 占有率を確認できます。 、メモリ使用量、プロセスの切り替え状況、ファイルシステムのio、ソケットの状況

2. golangでのCPUパフォーマンス解析

(1) _ "net/http/pprof"をプログラムに導入し、 pprof モニタリングを有効にする

 import _
http.ListenAndServe("0.0.0.0:10000", nil)
程序结束

ブラウザから CPU の情報とステータスを確認します

http://127.0.0.1:10000/debug/pprof

注: プログラムが一定時間実行されるのを待ってから、クリックしてプロファイル ファイルを生成します ( 30 秒以上)

(2) pprof

go tool pprof [binary] [profile] //binary二进制文件 profile 要分析的文件
top //查看当前profile文件的cpu使用率

flat を使用する 関数自身のコードの実行時間

flat% 関数自身のコードの実行時間が占める割合CPU 時間の

cum は、関数自身のコードによって呼び出されるすべての関数の実行時間を表します。

cum% は、関数自身のコードによって呼び出されるすべての関数の実行時間を表します。 ⓓ、合計 CPU 使用率percentage

sum% 各行の flat% と上記すべての行の flat% の合計

(3) go tools pprof profile file

プログラムを開始しますデバッグして go tools pprof を実行します http://localhost:10000/debug/pprof/profile?seconds=60

(4) 視覚的な構造図

先在终端运行 go tool pprof [binary] [profile] ,然后输入web,浏览器会弹出一个可视化的图片。

その他の関連技術記事については、 go language チュートリアル列をご覧ください。

以上がgolangのCPUパフォーマンス解析についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。