gotools/internal/pprof/main.go

// Copyright 2023 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

//go:build ignore
// +build ignore

// The pprof command prints the total time in a pprof profile provided
// through the standard input.
package main

import (
	"compress/gzip"
	"fmt"
	"io"
	"log"
	"os"

	"golang.org/x/tools/internal/pprof"
)

func main() {
	rd, err := gzip.NewReader(os.Stdin)
	if err != nil {
		log.Fatal(err)
	}
	payload, err := io.ReadAll(rd)
	if err != nil {
		log.Fatal(err)
	}
	total, err := pprof.TotalTime(payload)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(total)
}