{"id":13440907,"url":"https://github.com/google/pprof","last_synced_at":"2025-09-09T21:05:29.634Z","repository":{"id":37406032,"uuid":"50629145","full_name":"google/pprof","owner":"google","description":"pprof is a tool for visualization and analysis of profiling data","archived":false,"fork":false,"pushed_at":"2025-05-01T23:54:59.000Z","size":6469,"stargazers_count":8434,"open_issues_count":54,"forks_count":619,"subscribers_count":126,"default_branch":"main","last_synced_at":"2025-05-12T18:20:06.760Z","etag":null,"topics":["performance","performance-analysis","pprof","profiler"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-01-29T01:52:07.000Z","updated_at":"2025-05-12T17:28:28.000Z","dependencies_parsed_at":"2023-02-16T14:30:29.385Z","dependency_job_id":"2472f736-e3cf-41f3-bba6-79217dbf2670","html_url":"https://github.com/google/pprof","commit_stats":{"total_commits":588,"total_committers":122,"mean_commits":4.819672131147541,"dds":0.8248299319727891,"last_synced_commit":"b92577c0c142dcb7be0bdb54d64c9e21101461cf"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fpprof","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fpprof/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fpprof/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fpprof/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/pprof/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253795162,"owners_count":21965488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["performance","performance-analysis","pprof","profiler"],"created_at":"2024-07-31T03:01:27.731Z","updated_at":"2025-05-12T18:20:14.302Z","avatar_url":"https://github.com/google.png","language":"Go","readme":"[![Github Action CI](https://github.com/google/pprof/workflows/ci/badge.svg)](https://github.com/google/pprof/actions)\n[![Codecov](https://codecov.io/gh/google/pprof/graph/badge.svg)](https://codecov.io/gh/google/pprof)\n[![Go Reference](https://pkg.go.dev/badge/github.com/google/pprof/profile.svg)](https://pkg.go.dev/github.com/google/pprof/profile)\n\n# Introduction\n\npprof is a tool for visualization and analysis of profiling data.\n\npprof reads a collection of profiling samples in profile.proto format and\ngenerates reports to visualize and help analyze the data. It can generate both\ntext and graphical reports (through the use of the dot visualization package).\n\nprofile.proto is a protocol buffer that describes a set of callstacks\nand symbolization information. A common usage is to represent a set of\nsampled callstacks from statistical profiling. The format is\ndescribed on the [proto/profile.proto](./proto/profile.proto) file. For details on protocol\nbuffers, see https://developers.google.com/protocol-buffers\n\nProfiles can be read from a local file, or over http. Multiple\nprofiles of the same type can be aggregated or compared.\n\nIf the profile samples contain machine addresses, pprof can symbolize\nthem through the use of the native binutils tools (addr2line and nm).\n\n**This is not an official Google product.**\n\n# Building pprof\n\nPrerequisites:\n\n- Go development kit of a [supported version](https://golang.org/doc/devel/release.html#policy).\n  Follow [these instructions](http://golang.org/doc/code.html) to prepare\n  the environment.\n\n- Graphviz: http://www.graphviz.org/\n  Optional, used to generate graphic visualizations of profiles\n\nTo build and install it:\n\n    go install github.com/google/pprof@latest\n\nThe binary will be installed `$GOPATH/bin` (`$HOME/go/bin` by default).\n\n# Basic usage\n\npprof can read a profile from a file or directly from a server via http.\nSpecify the profile input(s) in the command line, and use options to\nindicate how to format the report.\n\n## Generate a text report of the profile, sorted by hotness:\n\n```\n% pprof -top [main_binary] profile.pb.gz\nWhere\n    main_binary:  Local path to the main program binary, to enable symbolization\n    profile.pb.gz: Local path to the profile in a compressed protobuf, or\n                   URL to the http service that serves a profile.\n```\n\n## Generate a graph in an SVG file, and open it with a web browser:\n\n```\npprof -web [main_binary] profile.pb.gz\n```\n\n## Run pprof on interactive mode:\n\nIf no output formatting option is specified, pprof runs on interactive mode,\nwhere reads the profile and accepts interactive commands for visualization and\nrefinement of the profile.\n\n```\npprof [main_binary] profile.pb.gz\n\nThis will open a simple shell that takes pprof commands to generate reports.\nType 'help' for available commands/options.\n```\n\n## Run pprof via a web interface\n\nIf the `-http` flag is specified, pprof starts a web server at\nthe specified host:port that provides an interactive web-based interface to pprof.\nHost is optional, and is \"localhost\" by default. Port is optional, and is a\nrandom available port by default. `-http=\":\"` starts a server locally at\na random port.\n\n```\npprof -http=[host]:[port] [main_binary] profile.pb.gz\n```\n\nThe preceding command should automatically open your web browser at\nthe right page; if not, you can manually visit the specified port in\nyour web browser.\n\n## Using pprof with Linux Perf\n\npprof can read `perf.data` files generated by the\n[Linux perf](https://perf.wiki.kernel.org/index.php/Main_Page) tool by using the\n`perf_to_profile` program from the\n[perf_data_converter](https://github.com/google/perf_data_converter) package.\n\n## Viewing disassembly on Windows\n\nTo view disassembly of profiles collected from Go programs compiled as Windows executables,\nthe executable must be built with `go build -buildmode=exe`. LLVM or GCC must be installed,\nso required tools like `addr2line` and `nm` are available to `pprof`.\n\n## Further documentation\n\nSee [doc/README.md](doc/README.md) for more detailed end-user documentation.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for contribution documentation.\n\nSee [proto/README.md](proto/README.md) for a description of the profile.proto format.\n","funding_links":[],"categories":["Repositories","HarmonyOS","Go","开源类库","Misc","Open source library","Debugging \u0026 Profiling \u0026 Tracing","Uncategorized","Golang","Profiling","performance","General utilites","⚡ Performance Engineering"],"sub_categories":["Windows Manager","调试","Debugging","For Go","Uncategorized","Ferramentas de Performance"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fpprof","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Fpprof","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fpprof/lists"}