FAQ
I use a very simple test program:

package main

import "github.com/go-martini/martini"

func main() {
   m := martini.Classic()

   m.Get("/", func() string {
     return "Hello world!"
   })

   m.Run()
}

golang 1.2.1 :
ab -c 1000 -n 10000 http://127.0.0.1:3000/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:
Server Hostname: 127.0.0.1
Server Port: 3000

Document Path: /
Document Length: 12 bytes

Concurrency Level: 1000
Time taken for tests: 1.422 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 1290000 bytes
HTML transferred: 120000 bytes
Requests per second: 7033.84 [#/sec] (mean)
Time per request: 142.170 [ms] (mean)
Time per request: 0.142 [ms] (mean, across all concurrent requests)
Transfer rate: 886.10 [Kbytes/sec] received

Connection Times (ms)
               min mean[+/-sd] median max
Connect: 0 2 5.4 0 25
Processing: 9 88 14.8 92 298
Waiting: 8 88 14.9 92 298
Total: 32 90 10.9 92 298

Percentage of the requests served within a certain time (ms)
   50% 92
   66% 93
   75% 93
   80% 93
   90% 94
   95% 95
   98% 105
   99% 111
  100% 298 (longest request)


golang 1.3 beta1:
  ab -c 1000 -n 10000 http://127.0.0.1:3000/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:
Server Hostname: 127.0.0.1
Server Port: 3000

Document Path: /
Document Length: 12 bytes

Concurrency Level: 1000
Time taken for tests: 1.587 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 1290000 bytes
HTML transferred: 120000 bytes
Requests per second: 6300.01 [#/sec] (mean)
Time per request: 158.730 [ms] (mean)
Time per request: 0.159 [ms] (mean, across all concurrent requests)
Transfer rate: 793.65 [Kbytes/sec] received

Connection Times (ms)
               min mean[+/-sd] median max
Connect: 0 1 4.5 0 23
Processing: 5 23 14.5 20 500
Waiting: 5 23 14.5 20 500
Total: 19 24 16.9 20 500

Percentage of the requests served within a certain time (ms)
   50% 20
   66% 21
   75% 21
   80% 21
   90% 23
   95% 58
   98% 84
   99% 96
  100% 500 (longest request)

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Search Discussions

  • Guo tie at Apr 24, 2014 at 2:10 am
    I test this on Centos 6.3 x64, with Intel(R) Xeon(R) CPU E5410 @
    2.33GHz, 8G memory.

    On Thursday, April 24, 2014 10:07:59 AM UTC+8, guo tie wrote:

    I use a very simple test program:

    package main

    import "github.com/go-martini/martini"

    func main() {
    m := martini.Classic()

    m.Get("/", func() string {
    return "Hello world!"
    })

    m.Run()
    }

    golang 1.2.1 :
    ab -c 1000 -n 10000 http://127.0.0.1:3000/
    This is ApacheBench, Version 2.3 <$Revision: 655654 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking 127.0.0.1 (be patient)
    Completed 1000 requests
    Completed 2000 requests
    Completed 3000 requests
    Completed 4000 requests
    Completed 5000 requests
    Completed 6000 requests
    Completed 7000 requests
    Completed 8000 requests
    Completed 9000 requests
    Completed 10000 requests
    Finished 10000 requests


    Server Software:
    Server Hostname: 127.0.0.1
    Server Port: 3000

    Document Path: /
    Document Length: 12 bytes

    Concurrency Level: 1000
    Time taken for tests: 1.422 seconds
    Complete requests: 10000
    Failed requests: 0
    Write errors: 0
    Total transferred: 1290000 bytes
    HTML transferred: 120000 bytes
    Requests per second: 7033.84 [#/sec] (mean)
    Time per request: 142.170 [ms] (mean)
    Time per request: 0.142 [ms] (mean, across all concurrent requests)
    Transfer rate: 886.10 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 2 5.4 0 25
    Processing: 9 88 14.8 92 298
    Waiting: 8 88 14.9 92 298
    Total: 32 90 10.9 92 298

    Percentage of the requests served within a certain time (ms)
    50% 92
    66% 93
    75% 93
    80% 93
    90% 94
    95% 95
    98% 105
    99% 111
    100% 298 (longest request)


    golang 1.3 beta1:
    ab -c 1000 -n 10000 http://127.0.0.1:3000/
    This is ApacheBench, Version 2.3 <$Revision: 655654 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking 127.0.0.1 (be patient)
    Completed 1000 requests
    Completed 2000 requests
    Completed 3000 requests
    Completed 4000 requests
    Completed 5000 requests
    Completed 6000 requests
    Completed 7000 requests
    Completed 8000 requests
    Completed 9000 requests
    Completed 10000 requests
    Finished 10000 requests


    Server Software:
    Server Hostname: 127.0.0.1
    Server Port: 3000

    Document Path: /
    Document Length: 12 bytes

    Concurrency Level: 1000
    Time taken for tests: 1.587 seconds
    Complete requests: 10000
    Failed requests: 0
    Write errors: 0
    Total transferred: 1290000 bytes
    HTML transferred: 120000 bytes
    Requests per second: 6300.01 [#/sec] (mean)
    Time per request: 158.730 [ms] (mean)
    Time per request: 0.159 [ms] (mean, across all concurrent requests)
    Transfer rate: 793.65 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 1 4.5 0 23
    Processing: 5 23 14.5 20 500
    Waiting: 5 23 14.5 20 500
    Total: 19 24 16.9 20 500

    Percentage of the requests served within a certain time (ms)
    50% 20
    66% 21
    75% 21
    80% 21
    90% 23
    95% 58
    98% 84
    99% 96
    100% 500 (longest request)
    --
    You received this message because you are subscribed to the Google Groups "golang-nuts" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Tamás Gulácsi at Apr 24, 2014 at 4:12 am
    Don't use ab for network load test. Don't test from the same machine where the server runs on.
    (At least if you want reproducible and stable measurements).
    I'd suggest wrk or sieve from another machine.
    And this small exercise means you measure the framework (thus reflection).

    --
    You received this message because you are subscribed to the Google Groups "golang-nuts" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • C Banning at Apr 24, 2014 at 10:57 am
    Statistically speaking I'd say that 1.3beta1 is much more performant!
    On Wednesday, April 23, 2014 9:07:59 PM UTC-5, guo tie wrote:

    I use a very simple test program:

    package main

    import "github.com/go-martini/martini"

    func main() {
    m := martini.Classic()

    m.Get("/", func() string {
    return "Hello world!"
    })

    m.Run()
    }

    golang 1.2.1 :
    ab -c 1000 -n 10000 http://127.0.0.1:3000/
    This is ApacheBench, Version 2.3 <$Revision: 655654 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking 127.0.0.1 (be patient)
    Completed 1000 requests
    Completed 2000 requests
    Completed 3000 requests
    Completed 4000 requests
    Completed 5000 requests
    Completed 6000 requests
    Completed 7000 requests
    Completed 8000 requests
    Completed 9000 requests
    Completed 10000 requests
    Finished 10000 requests


    Server Software:
    Server Hostname: 127.0.0.1
    Server Port: 3000

    Document Path: /
    Document Length: 12 bytes

    Concurrency Level: 1000
    Time taken for tests: 1.422 seconds
    Complete requests: 10000
    Failed requests: 0
    Write errors: 0
    Total transferred: 1290000 bytes
    HTML transferred: 120000 bytes
    Requests per second: 7033.84 [#/sec] (mean)
    Time per request: 142.170 [ms] (mean)
    Time per request: 0.142 [ms] (mean, across all concurrent requests)
    Transfer rate: 886.10 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 2 5.4 0 25
    Processing: 9 88 14.8 92 298
    Waiting: 8 88 14.9 92 298
    Total: 32 90 10.9 92 298

    Percentage of the requests served within a certain time (ms)
    50% 92
    66% 93
    75% 93
    80% 93
    90% 94
    95% 95
    98% 105
    99% 111
    100% 298 (longest request)


    golang 1.3 beta1:
    ab -c 1000 -n 10000 http://127.0.0.1:3000/
    This is ApacheBench, Version 2.3 <$Revision: 655654 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking 127.0.0.1 (be patient)
    Completed 1000 requests
    Completed 2000 requests
    Completed 3000 requests
    Completed 4000 requests
    Completed 5000 requests
    Completed 6000 requests
    Completed 7000 requests
    Completed 8000 requests
    Completed 9000 requests
    Completed 10000 requests
    Finished 10000 requests


    Server Software:
    Server Hostname: 127.0.0.1
    Server Port: 3000

    Document Path: /
    Document Length: 12 bytes

    Concurrency Level: 1000
    Time taken for tests: 1.587 seconds
    Complete requests: 10000
    Failed requests: 0
    Write errors: 0
    Total transferred: 1290000 bytes
    HTML transferred: 120000 bytes
    Requests per second: 6300.01 [#/sec] (mean)
    Time per request: 158.730 [ms] (mean)
    Time per request: 0.159 [ms] (mean, across all concurrent requests)
    Transfer rate: 793.65 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 1 4.5 0 23
    Processing: 5 23 14.5 20 500
    Waiting: 5 23 14.5 20 500
    Total: 19 24 16.9 20 500

    Percentage of the requests served within a certain time (ms)
    50% 20
    66% 21
    75% 21
    80% 21
    90% 23
    95% 58
    98% 84
    99% 96
    100% 500 (longest request)
    --
    You received this message because you are subscribed to the Google Groups "golang-nuts" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Volker Dobler at Apr 24, 2014 at 12:05 pm
    Sorry if I don't get it: What in the shown results makes you
    think that Go 1.3 is slower than Go 1.2? 1.3 is 20% faster...

    V.

    Am Donnerstag, 24. April 2014 04:07:59 UTC+2 schrieb guo tie:
    I use a very simple test program:

    package main

    import "github.com/go-martini/martini"

    func main() {
    m := martini.Classic()

    m.Get("/", func() string {
    return "Hello world!"
    })

    m.Run()
    }

    golang 1.2.1 :
    ab -c 1000 -n 10000 http://127.0.0.1:3000/
    This is ApacheBench, Version 2.3 <$Revision: 655654 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking 127.0.0.1 (be patient)
    Completed 1000 requests
    Completed 2000 requests
    Completed 3000 requests
    Completed 4000 requests
    Completed 5000 requests
    Completed 6000 requests
    Completed 7000 requests
    Completed 8000 requests
    Completed 9000 requests
    Completed 10000 requests
    Finished 10000 requests


    Server Software:
    Server Hostname: 127.0.0.1
    Server Port: 3000

    Document Path: /
    Document Length: 12 bytes

    Concurrency Level: 1000
    Time taken for tests: 1.422 seconds
    Complete requests: 10000
    Failed requests: 0
    Write errors: 0
    Total transferred: 1290000 bytes
    HTML transferred: 120000 bytes
    Requests per second: 7033.84 [#/sec] (mean)
    Time per request: 142.170 [ms] (mean)
    Time per request: 0.142 [ms] (mean, across all concurrent requests)
    Transfer rate: 886.10 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 2 5.4 0 25
    Processing: 9 88 14.8 92 298
    Waiting: 8 88 14.9 92 298
    Total: 32 90 10.9 92 298

    Percentage of the requests served within a certain time (ms)
    50% 92
    66% 93
    75% 93
    80% 93
    90% 94
    95% 95
    98% 105
    99% 111
    100% 298 (longest request)


    golang 1.3 beta1:
    ab -c 1000 -n 10000 http://127.0.0.1:3000/
    This is ApacheBench, Version 2.3 <$Revision: 655654 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking 127.0.0.1 (be patient)
    Completed 1000 requests
    Completed 2000 requests
    Completed 3000 requests
    Completed 4000 requests
    Completed 5000 requests
    Completed 6000 requests
    Completed 7000 requests
    Completed 8000 requests
    Completed 9000 requests
    Completed 10000 requests
    Finished 10000 requests


    Server Software:
    Server Hostname: 127.0.0.1
    Server Port: 3000

    Document Path: /
    Document Length: 12 bytes

    Concurrency Level: 1000
    Time taken for tests: 1.587 seconds
    Complete requests: 10000
    Failed requests: 0
    Write errors: 0
    Total transferred: 1290000 bytes
    HTML transferred: 120000 bytes
    Requests per second: 6300.01 [#/sec] (mean)
    Time per request: 158.730 [ms] (mean)
    Time per request: 0.159 [ms] (mean, across all concurrent requests)
    Transfer rate: 793.65 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 1 4.5 0 23
    Processing: 5 23 14.5 20 500
    Waiting: 5 23 14.5 20 500
    Total: 19 24 16.9 20 500

    Percentage of the requests served within a certain time (ms)
    50% 20
    66% 21
    75% 21
    80% 21
    90% 23
    95% 58
    98% 84
    99% 96
    100% 500 (longest request)
    --
    You received this message because you are subscribed to the Google Groups "golang-nuts" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Opennota at Apr 24, 2014 at 12:14 pm

    On Thursday, April 24, 2014 7:05:02 PM UTC+7, Volker Dobler wrote:
    Sorry if I don't get it: What in the shown results makes you
    think that Go 1.3 is slower than Go 1.2? 1.3 is 20% faster...
    Huh? I also do not see Go 1.3 winning this race.

    Go 1.2.1:
    Requests per second: 7033.84 [#/sec] (mean)
    Time per request: 142.170 [ms] (mean)

    Go 1.3beta1:
    Requests per second: 6300.01 [#/sec] (mean)
    Time per request: 158.730 [ms] (mean)

    --
    You received this message because you are subscribed to the Google Groups "golang-nuts" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Volker Dobler at Apr 24, 2014 at 12:32 pm

    Am Donnerstag, 24. April 2014 14:14:41 UTC+2 schrieb opennota:
    On Thursday, April 24, 2014 7:05:02 PM UTC+7, Volker Dobler wrote:

    Sorry if I don't get it: What in the shown results makes you
    think that Go 1.3 is slower than Go 1.2? 1.3 is 20% faster...
    Huh? I also do not see Go 1.3 winning this race.

    Go 1.2.1:
    Requests per second: 7033.84 [#/sec] (mean)
    Time per request: 142.170 [ms] (mean)

    Go 1.3beta1:
    Requests per second: 6300.01 [#/sec] (mean)
    Time per request: 158.730 [ms] (mean)
    Comparing means is very reasonable in the absence of outliers.
    Looking at the percentiles I dare to doubt that this assumption
    is fulfilled in the Go 1.3beta1 case. Looking at the median
    supports my claim.

    V.



    --
    You received this message because you are subscribed to the Google Groups "golang-nuts" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupgolang-nuts @
categoriesgo
postedApr 24, '14 at 2:08a
activeApr 24, '14 at 12:32p
posts7
users5
websitegolang.org

People

Translate

site design / logo © 2022 Grokbase