Go Profiling - Неверный файл
Я делаю профилирование в Go, используя github.com/pkg/profile, и он создает файл, когда я запускаю свой код, но результат исходит из примера кода страницы, как это будет проходить через мой код? заранее спасибо
Код:
package main
import (
"fmt"
"github.com/pkg/profile"
"time"
)
func main() {
defer profile.Start(profile.MemProfile).Stop()
var inicio = time.Now().UnixNano()
var text = "Olá Mundo!"
fmt.Println(text)
var fim = time.Now().UnixNano()
fmt.Println(fim - inicio)
}
Вернуть:
1 ответ
Вы можете изменить путь вывода вашего профиля на текущий рабочий каталог,
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
}
}
Вы также можете установить путь к профилю для вывода профиля в текущем рабочем каталоге.