es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

`go tool pprof` informa un error de `formato de perfil no reconocido`.

Estoy tratando de generar un PNG del perfil goroutine con este demo, pero informa un error analizando perfil: formato de perfil no reconocido. no se pudieron obtener perfiles de origen

package main

import (
    "fmt"
    "log"
    "os"
    "os/exec"
    "runtime/pprof"
    "time"
)

func main()  {
    // iniciar go routine de demostración
    go func() {
        for {
            time.Sleep(time.Second)
        }
    }()

    // obtener la ruta del ejecutable
    exePath, err := os.Executable()
    if err != nil {
        log.Println(err.Error())
        return
    }
    log.Println("exePath", exePath)

    // generar perfil de goroutine
    profilePath := exePath + ".profile"
    f, err := os.Create(profilePath)
    if err != nil {
        log.Println(err.Error())
        return
    }
    defer f.Close()
    if err := pprof.Lookup("goroutine").WriteTo(f, 2); err != nil {
        log.Println(err.Error())
        return
    }

    // generar PNG
    pngPath := exePath + ".png"
    result, err := exec.Command("go", "tool", "pprof", "-png", "-output", pngPath, exePath, profilePath).CombinedOutput()
    if err != nil {
        log.Println("make error:", err.Error())
    }
    log.Println("make result:", string(result))
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error “parsing profile: unrecognized profile format. failed to fetch any source profiles” generalmente ocurre cuando el perfil que se está escribiendo está vacío o no tiene datos válidos. En el fragmento de código proporcionado, el perfil de la goroutine se está escribiendo en un archivo, pero es posible que no se estén creando o activando goroutines durante la ejecución del programa, lo que resulta en un perfil vacío.

    Para resolver este error, asegúrese de que el programa esté creando y utilizando activamente goroutines, y que el perfil de la goroutine se esté escribiendo después de la creación de estas goroutines. Además, verifique que el paquete pprof esté instalado correctamente y actualizado.

    Si el error persiste, considere utilizar otros métodos para perfilar y analizar el rendimiento del programa, como el paquete trace u otras herramientas de perfilado alternativas.

Comments are closed.