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
    }
}

Вы также можете установить путь к профилю для вывода профиля в текущем рабочем каталоге.

Другие вопросы по тегам