Go Profiling - Неверный файл - PullRequest
0 голосов
/ 19 октября 2018

Я выполняю профилирование в 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)

}

возврат:

enter image description here

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете изменить путь вывода вашего профиля на текущий рабочий каталог,

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

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

...