aboutsummaryrefslogtreecommitdiff
path: root/design/55022-pgo.md
diff options
context:
space:
mode:
authorShulhan <m.shulhan@gmail.com>2026-02-05 02:40:45 +0700
committerShulhan <m.shulhan@gmail.com>2026-04-09 22:18:08 +0700
commita35c1bec998f69ab8feaba5bc18c475b460473c3 (patch)
tree31c0860df456c608361d99fb1e7fae01fa650ba0 /design/55022-pgo.md
parent30ca2a3a36351bcfeca7cfc8b6b367016046f0e4 (diff)
downloadgo-x-proposal-a35c1bec998f69ab8feaba5bc18c475b460473c3.tar.xz
all: fix broken links and typos
Diffstat (limited to 'design/55022-pgo.md')
-rw-r--r--design/55022-pgo.md4
1 files changed, 2 insertions, 2 deletions
diff --git a/design/55022-pgo.md b/design/55022-pgo.md
index 0b1508f..75181fd 100644
--- a/design/55022-pgo.md
+++ b/design/55022-pgo.md
@@ -12,7 +12,7 @@ Previous discussion at https://golang.org/issue/28262.
We propose adding support for profile-guided optimization (PGO) to the Go gc toolchain. PGO will enable the toolchain to perform application- and workload-specific optimizations based on run-time information. Unlike many compiler optimizations, PGO requires user involvement to collect profiles and feed them back into the build process. Hence, we propose a design that centers user experience and ease of deployment and fits naturally into the broader Go build ecosystem.
-Our proposed approach uses low-overhead sample-based profiles collected directly from production deployments. This ensures profile data is representative of an application’s real workload, but requires the Go toolchain to cope with stale profiles and profiles from already-optimized binaries. We propose to use the standard and widely-deployed [`runtime/pprof`](https://pkg.go/dev/runtime/pprof) profiler, so users can take advantage of robust tooling for profile collection, processing, and visualization. Pprof is also supported on nearly every operating system, architecture, and deployment environment, unlike hardware-based profiling, which is higher fidelity but generally not available in cloud environments. Users will check in profiles to source control alongside source code, where the `go` tool can transparently supply them to the build and they naturally become part of reproducible builds and the SBOM. Altogether, Go’s vertical integration from build system to toolchain to run-time profiling creates a unique opportunity for a streamlined PGO user experience.
+Our proposed approach uses low-overhead sample-based profiles collected directly from production deployments. This ensures profile data is representative of an application’s real workload, but requires the Go toolchain to cope with stale profiles and profiles from already-optimized binaries. We propose to use the standard and widely-deployed [`runtime/pprof`](https://pkg.go.dev/runtime/pprof) profiler, so users can take advantage of robust tooling for profile collection, processing, and visualization. Pprof is also supported on nearly every operating system, architecture, and deployment environment, unlike hardware-based profiling, which is higher fidelity but generally not available in cloud environments. Users will check in profiles to source control alongside source code, where the `go` tool can transparently supply them to the build and they naturally become part of reproducible builds and the SBOM. Altogether, Go’s vertical integration from build system to toolchain to run-time profiling creates a unique opportunity for a streamlined PGO user experience.
## Background
@@ -102,7 +102,7 @@ We propose to add profile-guided optimization to Go.
### Profile sources and formats
-We will initially support pprof CPU profiles. Developers can collect profiles through usual means, such as the the `runtime/pprof` or `net/http/pprof` packages. The compiler will directly read pprof CPU profiles.
+We will initially support pprof CPU profiles. Developers can collect profiles through usual means, such as the `runtime/pprof` or `net/http/pprof` packages. The compiler will directly read pprof CPU profiles.
In the future we may support more types of profiles (see below).