Функция pprof.StopCPUProfile
Функция pprof.StopCPUProfile останавливает профилирование CPU,
которое было запущено вызовом pprof.StartCPUProfile.
Функция не принимает никаких параметров и завершает запись
профиля в указанный при запуске файл. После вызова этой функции
профилирование CPU останавливается, и собранные данные сохраняются
для последующего анализа. Функция должна вызываться после
завершения участка кода, который требуется профилировать.
Синтаксис
pprof.StopCPUProfile()
Пример
Давайте запустим профилирование CPU для функции, выполняющей
вычисления, и остановим его с помощью pprof.StopCPUProfile:
package main
import (
"os"
"runtime/pprof"
)
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
sum := 0
for i := 0; i < 1000000; i++ {
sum += i * i
}
}
В результате выполнения кода в файл cpu.prof
будет записан профиль CPU для выполнения цикла.
Пример
Рассмотрим пример с профилированием более сложной функции и остановкой профилирования вручную:
package main
import (
"os"
"runtime/pprof"
"time"
)
func heavyComputation() {
result := 0
for i := 0; i < 100000; i++ {
for j := 0; j < 1000; j++ {
result += i * j
}
}
}
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
heavyComputation()
pprof.StopCPUProfile()
time.Sleep(100 * time.Millisecond)
}
Результат выполнения кода:
"CPU profile saved to cpu.prof"
Профилирование останавливается после вызова pprof.StopCPUProfile,
и программа продолжает выполнение с паузой в 100 миллисекунд.
Смотрите также
-
функцию
pprof.StartCPUProfile,
которая запускает профилирование CPU -
функцию
pprof.WriteHeapProfile,
которая записывает профиль памяти -
функцию
pprof.Lookup,
которая возвращает профиль по имени -
пакет
runtime/pprof,
который предоставляет инструменты для профилирования