Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(22)

Issue 7313048: code review 7313048: net/http: add BenchmarkReadRequest (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
12 years, 4 months ago by dave
Modified:
12 years, 4 months ago
Reviewers:
CC:
golang-dev, bradfitz, minux1, felixge
Visibility:
Public.

Description

net/http: add BenchmarkReadRequest Add benchmark for request parsing. Fixture data is taken from https://github.com/felixge/node-http-perf % go version go version devel +28966b7b2f0c Thu Feb 07 20:26:12 2013 -0800 linux/amd64 % go test -run=nil -bench=ReadRequest -benchtime=10s PASS BenchmarkReadRequest 2000000 9900 ns/op 61.71 MB/s 3148 B/op 32 allocs/op ok net/http 12.180s

Patch Set 1 #

Patch Set 2 : diff -r ec4982dfc0fc https://code.google.com/p/go #

Patch Set 3 : diff -r ec4982dfc0fc https://code.google.com/p/go #

Patch Set 4 : diff -r 28966b7b2f0c https://code.google.com/p/go #

Total comments: 4

Patch Set 5 : diff -r 28966b7b2f0c https://code.google.com/p/go #

Total comments: 5

Patch Set 6 : diff -r 28966b7b2f0c https://code.google.com/p/go #

Patch Set 7 : diff -r 9d68dabd0026 https://code.google.com/p/go #

Unified diffs Side-by-side diffs Delta from patch set Stats (+49 lines, -0 lines) Patch
M src/pkg/net/http/request_test.go View 1 2 3 4 5 1 chunk +49 lines, -0 lines 0 comments Download

Messages

Total messages: 17
dave_cheney.net
Hello golang-dev@googlegroups.com, I'd like you to review this change to https://code.google.com/p/go
12 years, 4 months ago (2013-02-06 08:25:55 UTC) #1
dave_cheney.net
ping
12 years, 4 months ago (2013-02-07 23:00:33 UTC) #2
bradfitz
It'd be nice if you could make an io.Reader which repeats a string n times, ...
12 years, 4 months ago (2013-02-08 00:27:49 UTC) #3
dave_cheney.net
Sure thing, will do. I was sad to see that ReadRequest takes a *bufio.Reader, not ...
12 years, 4 months ago (2013-02-08 00:29:54 UTC) #4
dave_cheney.net
Hello golang-dev@googlegroups.com, bradfitz@golang.org (cc: golang-dev@googlegroups.com), Please take another look.
12 years, 4 months ago (2013-02-08 05:55:47 UTC) #5
minux1
https://codereview.appspot.com/7313048/diff/9001/src/pkg/net/http/request_test.go File src/pkg/net/http/request_test.go (right): https://codereview.appspot.com/7313048/diff/9001/src/pkg/net/http/request_test.go#newcode406 src/pkg/net/http/request_test.go:406: b.SetBytes(int64(len(request))) b.ReportAllocs() https://codereview.appspot.com/7313048/diff/9001/src/pkg/net/http/request_test.go#newcode407 src/pkg/net/http/request_test.go:407: r := bufio.NewReader(&infiniteReader{buf: []byte(request)}) b.ResetTimer()
12 years, 4 months ago (2013-02-08 06:47:37 UTC) #6
dave_cheney.net
Thank you for your feedback. PTAL. https://codereview.appspot.com/7313048/diff/9001/src/pkg/net/http/request_test.go File src/pkg/net/http/request_test.go (right): https://codereview.appspot.com/7313048/diff/9001/src/pkg/net/http/request_test.go#newcode406 src/pkg/net/http/request_test.go:406: b.SetBytes(int64(len(request))) On 2013/02/08 ...
12 years, 4 months ago (2013-02-08 06:52:13 UTC) #7
minux1
https://codereview.appspot.com/7313048/diff/6002/src/pkg/net/http/request_test.go File src/pkg/net/http/request_test.go (right): https://codereview.appspot.com/7313048/diff/6002/src/pkg/net/http/request_test.go#newcode427 src/pkg/net/http/request_test.go:427: r.offset += copy(b, r.buf[r.offset:n]) this (r.buf[r.offset:n]) seems wrong to ...
12 years, 4 months ago (2013-02-08 07:16:51 UTC) #8
felixge
https://codereview.appspot.com/7313048/diff/6002/src/pkg/net/http/request_test.go File src/pkg/net/http/request_test.go (right): https://codereview.appspot.com/7313048/diff/6002/src/pkg/net/http/request_test.go#newcode441 src/pkg/net/http/request_test.go:441: const request = "GET / HTTP/1.1\r\n" + > does ...
12 years, 4 months ago (2013-02-08 08:28:15 UTC) #9
minux1
On Friday, February 8, 2013, haimuiba wrote: > > https://codereview.appspot.**com/7313048/diff/6002/src/pkg/** > net/http/request_test.go#**newcode441<https://codereview.appspot.com/7313048/diff/6002/src/pkg/net/http/request_test.go#newcode441> > src/pkg/net/http/request_test.**go:441: const ...
12 years, 4 months ago (2013-02-08 08:31:57 UTC) #10
dave_cheney.net
Thanks. Ill fix my reader code and repurpose after dinner On 08/02/2013, at 19:31, minux ...
12 years, 4 months ago (2013-02-08 08:47:38 UTC) #11
felixge
> > using the same fixture surely helps in comparing performance. One thing about the ...
12 years, 4 months ago (2013-02-08 09:09:24 UTC) #12
minux1
On Fri, Feb 8, 2013 at 5:09 PM, Felix Geisendoerfer <haimuiba@gmail.com>wrote: > using the same ...
12 years, 4 months ago (2013-02-08 09:16:13 UTC) #13
dave_cheney.net
We can add more, and in fact we should. That is why the current benchmark ...
12 years, 4 months ago (2013-02-08 10:42:36 UTC) #14
dave_cheney.net
Hello golang-dev@googlegroups.com, bradfitz@golang.org, minux.ma@gmail.com, haimuiba@gmail.com (cc: golang-dev@googlegroups.com), Please take another look.
12 years, 4 months ago (2013-02-08 11:43:37 UTC) #15
bradfitz
LGTM
12 years, 4 months ago (2013-02-08 15:42:42 UTC) #16
dave_cheney.net
12 years, 4 months ago (2013-02-08 20:04:20 UTC) #17
*** Submitted as https://code.google.com/p/go/source/detail?r=7dc9a98ddfcc ***

net/http: add BenchmarkReadRequest

Add benchmark for request parsing. Fixture data is taken from
https://github.com/felixge/node-http-perf

% go version
go version devel +28966b7b2f0c Thu Feb 07 20:26:12 2013 -0800 linux/amd64

% go test -run=nil -bench=ReadRequest -benchtime=10s
PASS
BenchmarkReadRequest     2000000   9900 ns/op   61.71 MB/s   3148 B/op   32
allocs/op
ok      net/http        12.180s

R=golang-dev, bradfitz, minux.ma, haimuiba
CC=golang-dev
https://codereview.appspot.com/7313048

https://codereview.appspot.com/7313048/diff/6002/src/pkg/net/http/request_tes...
File src/pkg/net/http/request_test.go (right):

https://codereview.appspot.com/7313048/diff/6002/src/pkg/net/http/request_tes...
src/pkg/net/http/request_test.go:427: r.offset += copy(b, r.buf[r.offset:n])
On 2013/02/08 07:16:51, minux wrote:
> this (r.buf[r.offset:n]) seems wrong to me.
> 
> i suggest this:
> n := copy(b, r.buf[r.offset:])
> r.offset = (r.offset + n) % len(r.buf)
> return n, nil

Done, thank you.

https://codereview.appspot.com/7313048/diff/6002/src/pkg/net/http/request_tes...
src/pkg/net/http/request_test.go:441: const request = "GET / HTTP/1.1\r\n" +
On 2013/02/08 07:16:51, minux wrote:
> this string concatenation looks ugly to me.
> how about using raw string + strings.Replace(s, "\n", "\r\n", -1)?
> 
> does this have license problems? i can't find any license info
> on the node-http-perf page.

Done.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b