mirror of
https://github.com/golang/go
synced 2024-11-20 00:44:45 -07:00
net/http: inline chunkWriter in response
A chunkWriter and a response are 1:1. Make them contiguous in memory and save an allocation. benchmark old ns/op new ns/op delta BenchmarkServerFakeConnWithKeepAliveLite 10715 10539 -1.64% benchmark old allocs new allocs delta BenchmarkServerFakeConnWithKeepAliveLite 21 20 -4.76% benchmark old bytes new bytes delta BenchmarkServerFakeConnWithKeepAliveLite 1626 1609 -1.05% R=golang-dev, gri CC=golang-dev https://golang.org/cl/8114043
This commit is contained in:
parent
42a840860f
commit
a891484a4e
@ -288,7 +288,7 @@ type response struct {
|
||||
wroteContinue bool // 100 Continue response was written
|
||||
|
||||
w *bufio.Writer // buffers output in chunks to chunkWriter
|
||||
cw *chunkWriter
|
||||
cw chunkWriter
|
||||
sw *switchWriter // of the bufio.Writer, for return to putBufioWriter
|
||||
|
||||
// handlerHeader is the Header that Handlers get access to,
|
||||
@ -558,10 +558,9 @@ func (c *conn) readRequest() (w *response, err error) {
|
||||
req: req,
|
||||
handlerHeader: make(Header),
|
||||
contentLength: -1,
|
||||
cw: new(chunkWriter),
|
||||
}
|
||||
w.cw.res = w
|
||||
w.w, w.sw = newBufioWriterSize(w.cw, bufferBeforeChunkingSize)
|
||||
w.w, w.sw = newBufioWriterSize(&w.cw, bufferBeforeChunkingSize)
|
||||
return w, nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user