go-ethereum/cmd/utils
CPerezz 2c4d669f5d
cmd/geth: add --gcpercent flag for GC tuning
Add a --gcpercent flag that overrides the Go runtime's GOGC value at
startup. When not set, the existing cache-based auto-tuning is used.

CPU profiling of the binary trie (EIP-7864) shows 44% of CPU time
spent in garbage collection due to the large live object graph (~25K
InternalNodes). Reducing GC frequency via higher GOGC significantly
improves read-heavy workloads at the cost of higher memory usage.

This flag lets operators tune based on their workload:
- Validators (write-heavy): default or --gcpercent=100
- RPC nodes (read-heavy): --gcpercent=200 or higher
2026-03-17 13:31:26 +01:00
..
cmd.go internal/era: New EraE implementation (#32157) 2026-02-09 08:30:19 -07:00
diskusage.go all: add build tags for wasip1 (#31090) 2025-01-30 16:58:53 +01:00
diskusage_openbsd.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
diskusage_windows.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
export_test.go all: use fmt.Appendf instead of fmt.Sprintf where possible (#31301) 2025-03-25 14:53:02 +01:00
flags.go cmd/geth: add --gcpercent flag for GC tuning 2026-03-17 13:31:26 +01:00
flags_legacy.go cmd/utils: show full deprecated flags (#32141) 2025-07-04 09:40:16 +08:00
flags_test.go build: update to golangci-lint 1.61.0 (#30587) 2024-10-14 19:25:22 +02:00
history_test.go internal/era: New EraE implementation (#32157) 2026-02-09 08:30:19 -07:00
prompt.go cmd/geth: remove unlock commandline flag (#30737) 2024-11-15 10:15:15 +01:00