golangのメモリリークを検出する方法

Goでは、組み込みのruntimeパッケージを使用してメモリリークを検出できます。手順は次のとおりです。

  1. ネイティブに日本語で言い換えてください。オプションは1つだけです:ランタイム
import "runtime"
  1. ランタイム。GC()
runtime.GC()
  1. runtime.ReadMemStats()
var memStats runtime.MemStats
runtime.ReadMemStats(&memStats)
  1. アロケ,(アロック)
  2. 合計配分
  3. mallocs
  4. 合計アロケーション
prevTotalAlloc := memStats.TotalAlloc
// do something
runtime.GC()
runtime.ReadMemStats(&memStats)
currentTotalAlloc := memStats.TotalAlloc
if currentTotalAlloc > prevTotalAlloc {
// 发生了内存泄漏
}

Go言語のガベージコレクション機能により、メモリリークが発生しづらい点に留意する。メモリ使用量が過大になった場合は、プロファイリングツールを利用してメモリリークが実際に発生しているかを判断する。

bannerAds