commit | 32f9bdbd7df18e8641d215e7ea68be88b971feb0 | [log] [tgz] |
---|---|---|
author | Brad Fitzpatrick <bradfitz@golang.org> | Wed Aug 01 17:17:55 2018 +0000 |
committer | Brad Fitzpatrick <bradfitz@golang.org> | Wed Aug 01 17:40:33 2018 +0000 |
tree | 63ca16cb087415ca2dda32d5a0bccc95193a626f | |
parent | 49c15d80dfbc983ea25246ee959d970efe09ec09 [diff] |
http2/hpack: reduce memory for huffman decoding table Reduces process-wide heap (inuse_space) by 60kB by using a pointer to a fixed-sized array instead of a slice of a fixed size. Before: 119.44kB 23.43% 23.43% 147.88kB 29.01% golang.org/x/net/http2/hpack.addDecoderNode After: 59.72kB 13.28% 39.85% 87.94kB 19.56% golang.org/x/net/http2/hpack.addDecoderNode (This is all work from an init func in http2/hpack) Doesn't seem to affect runtime performance. Measured with: $ cat huffman_test.go package main import ( "testing" _ "golang.org/x/net/http2" ) func TestMem(t *testing.T) {} $ GODEBUG=memprofilerate=1 go test -memprofilerate=1 -memprofile=mem.prof -v . === RUN TestMem --- PASS: TestMem (0.00s) PASS ok huffmem 0.052s $ go tool pprof --inuse_space mem.prof Change-Id: I5e56a5a2682f1063c955b342b37e97ca4c303dab Reviewed-on: https://go-review.googlesource.com/127235 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This repository holds supplementary Go networking libraries.
The easiest way to install is to run go get -u golang.org/x/net
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/net
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html. The main issue tracker for the net repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.