Вы можете изменить путь вывода вашего профиля на текущий рабочий каталог,
profile.ProfilePath(path)
Если вы не можете получить какие-либо образцы, это также означает, что ваш MemProfileRate
недостаточно мал, чтобы фактически захватитьнебольшие изменения.
Если вы выделяете меньше объема памяти, установите для MemProfileRate
меньшее значение. Если вы выделяете большой объем памяти, просто оставьте значение по умолчанию.Если вы думаете, что захватываете незначительные изменения памяти, увеличьте MemProfileRate
.
profile.MemProfileRate(100)
, и одна вещь, которую вы не должны забывать, когда используете пакет profile
, - ваш вызов должен быть отложен.
defer profile.Start(xxx).Stop()
Вот полная программа.
package main
import (
"os"
"github.com/pkg/profile"
)
func main() {
dir, _ := os.Getwd()
defer profile.Start(profile.MemProfile, profile.MemProfileRate(100), profile.ProfilePath(dir)).Stop()
//decrease mem profile rate for capturing more samples
for i := 0; i < 10000; i++ {
tmp := make([]byte, 100000)
tmp[0] = tmp[1] << 0 //fake workload
}
}
Вы также можете установить путь к профилю для вывода профиля в текущем рабочем каталоге.