commit | 10342476f5c8587b46c71128962c71d0c3cd6904 | [log] [tgz] |
---|---|---|
author | Nicholas S. Husin <nsh@golang.org> | Tue Sep 16 00:30:54 2025 -0400 |
committer | Nicholas Husin <nsh@golang.org> | Fri Sep 19 14:13:39 2025 -0700 |
tree | a771c5ca94c41fb9ed50283c35ac33bd5b9d19f4 | |
parent | 653f4f665b7c1ba2d4a3c650233c789ffb521425 [diff] |
http2: introduce a new write scheduler based on RFC 9218 priority scheme This change introduces a new write scheduler that prioritizes writes based on RFC 9218. Eventually, this scheduler will be used to replace the existing priority scheduler based on RFC 7540, which has been deprecated in RFC 9113. No behavioral changes has been introduced as this scheduler is not used anywhere yet. goos: linux goarch: amd64 pkg: golang.org/x/net/http2 cpu: AMD EPYC 7B13 BenchmarkWriteSchedulerThroughputRoundRobin-64 100000 140884 ns/op 139201 B/op 2900 allocs/op BenchmarkWriteSchedulerLifetimeRoundRobin-64 100000 149632 ns/op 139202 B/op 2900 allocs/op BenchmarkWriteSchedulerThroughputRandom-64 100000 218311 ns/op 139201 B/op 2900 allocs/op BenchmarkWriteSchedulerLifetimeRandom-64 100000 216559 ns/op 139203 B/op 2900 allocs/op BenchmarkWriteSchedulerThroughputPriorityRFC7540-64 100000 587625 ns/op 139201 B/op 2900 allocs/op BenchmarkWriteSchedulerThroughputPriorityRFC9218Incremental-64 100000 149563 ns/op 139200 B/op 2900 allocs/op BenchmarkWriteSchedulerLifetimePriorityRFC9218Incremental-64 100000 163697 ns/op 139201 B/op 2900 allocs/op BenchmarkWriteSchedulerThroughputPriorityRFC9218NonIncremental-64 100000 145364 ns/op 139201 B/op 2900 allocs/op BenchmarkWriteSchedulerLifetimePriorityRFC9218NonIncremental-64 100000 159316 ns/op 139203 B/op 2900 allocs/op For golang/go#75500 Change-Id: Id5db195f6f75970f9cc3c7b7a292df96a139de8b Reviewed-on: https://go-review.googlesource.com/c/net/+/704758 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Nicholas Husin <husin@google.com>
This repository holds supplementary Go networking packages.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.
The git repository is https://go.googlesource.com/net.
The main issue tracker for the net repository is located at https://go.dev/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.