Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

runtime: performance regression on FreeBSD #5596

Closed
gopherbot opened this issue May 30, 2013 · 5 comments
Closed

runtime: performance regression on FreeBSD #5596

gopherbot opened this issue May 30, 2013 · 5 comments

Comments

@gopherbot
Copy link

by mark.vonminden:

What steps will reproduce the problem?

Run Dave Cheney's autobench tools on FreeBSD/amd64. See:
https://github.com/davecheney/autobench

Which compiler are you using (5g, 6g, 8g, gccgo)?

6g

Which operating system are you using?

FreeBSD

Which version are you using?  (run 'go version')

go version go1.1 freebsd/amd64

Please provide any additional information below.

Seeing a performance regression in the net/http package on FreeBSD. I was able to detect
it using Dave Cheney's autobench tools, which compares 1.03 and 1.1 using the built-in
benchmark tests (https://github.com/davecheney/autobench).

In particular, there seems to be a regression in the client/server performance.

Here is a snippet from the attached benchcmp output (comparing 1.03 and 1.1 on FreeBSD):

benchmark                         old ns/op    new ns/op    delta
BenchmarkHTTPClientServer            144770      8017199  +5437.89%
BenchmarkClientServer                156708      8017160  +5015.99%
BenchmarkClientServerParallel4       185736      2019450  +987.27%
BenchmarkClientServerParallel64      172426       209856  +21.71%
BenchmarkServer                      148844      4050047  +2621.00%

I also compared the http benchmarks on Linux and FreeBSD for Go 1.1 and saw that FreeBSD
was significantly slower. I've attached benchcmp output for that as well.

Attachments:

  1. freebsd-amd64-d5666bad617d-vs-e570c2daeaca.txt (12181 bytes)
  2. go1.1-http-bench-linux-vs-freebsd.txt (3961 bytes)
@robpike
Copy link
Contributor

robpike commented May 30, 2013

Comment 1:

Without looking at anything but the numbers, I can say that a delta like that is almost
certainly due to an unfortunate location for a stack segment boundary. We're working on
ways to avoid that in future, by arranging stacks in a different way.

@bradfitz
Copy link
Contributor

Comment 3:

Seems more likely related to networking performance.  net/http's tests stress that
pretty hard where other tests do not.

Labels changed: added os-freebsd, removed priority-triage.

Status changed to Accepted.

@mikioh
Copy link
Contributor

mikioh commented Sep 11, 2013

Comment 4:

On freebsd/amd64 virtual machine,
1.0.3 vs. 1.1.2:
BenchmarkClientServer                           97216     81947450  +84194.20%
BenchmarkClientServerParallel4                  97311     20397772  +20861.42%
BenchmarkClientServerParallel64                 97443      1638817  +1581.82%
BenchmarkServer                                 98145     41155672  +41833.54%
1.0.3 vs. tip:
BenchmarkClientServer                           97216        59846  -38.44%
BenchmarkClientServerParallel4                  97311        59673  -38.68%
BenchmarkClientServerParallel64                 97443        53200  -45.40%
BenchmarkServer                                 98145        89862   -8.44%
1.1.2 vs. tip:
BenchmarkClientServer                        81947450        59846  -99.93%
BenchmarkClientServerParallel4               20397772        59673  -99.71%
BenchmarkClientServerParallel64               1638817        53200  -96.75%
BenchmarkServer                              41155672        89862  -99.78%
Looks not so bad.

Status changed to Fixed.

Attachments:

  1. freebsd-amd64-1.0.3-1.1.2.txt (4574 bytes)
  2. freebsd-amd64-1.0.3-tip.txt (4563 bytes)
  3. freebsd-amd64-1.1.2-tip.txt (4563 bytes)

@davecheney
Copy link
Contributor

Comment 5:

Nice

@mikioh
Copy link
Contributor

mikioh commented Sep 11, 2013

Comment 6:

This issue was closed by revision cb3b292.

@golang golang locked and limited conversation to collaborators Jun 24, 2016
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants