On Wednesday, 30 December 2015 at 20:32:08 UTC, yawniek wrote:
Sönke is already on it.
http://forum.rejectedsoftware.com/groups/rejectedsoftware.vibed/post/29110
i guess its not enough, there are still things that make vibe.d
slow.
i quickly tried
https://github.com/nanoant/WebFrameworkBenchmark.git
which is really a very simple benchmark but it shows about the
general overhead.
single core results against go-fasthttp with GOMAXPROCS=1 and
vibe distribution disabled on a c4.2xlarge ec2 instance
(archlinux):
vibe.d 0.7.23 with ldc
Requests/sec: 52102.06
vibe.d 0.7.26 with dmd
Requests/sec: 44438.47
vibe.d 0.7.26 with ldc
Requests/sec: 53996.62
go-fasthttp:
Requests/sec: 152573.32
go:
Requests/sec: 62310.04
its sad.
i am aware that go-fasthttp is a very simplistic, stripped down
webserver and vibe is almost a full blown framework. still it
should be D and vibe.d's USP to be faster than the fastest in
the world and not limping around at the end of the charts.
My results from siege(just return page with Hello World same as
WebFrameworkBenchmark):
siege -c 20 -q -b -t30S http://127.0.0.1:8080
vibed: --combined -b release-nobounds --compiler=ldmd
Transactions: 968269 hits
Availability: 100.00 %
Elapsed time: 29.10 secs
Data transferred: 12.00 MB
Response time: 0.00 secs
Transaction rate: 33273.85 trans/sec
Throughput: 0.41 MB/sec
Concurrency: 19.62
Successful transactions: 968269
Failed transactions: 0
Longest transaction: 0.04
Shortest transaction: 0.00
vibed(one thread):
Transactions: 767815 hits
Availability: 100.00 %
Elapsed time: 29.94 secs
Data transferred: 9.52 MB
Response time: 0.00 secs
Transaction rate: 25645.12 trans/sec
Throughput: 0.32 MB/sec
Concurrency: 19.66
Successful transactions: 767815
Failed transactions: 0
Longest transaction: 0.02
Shortest transaction: 0.00
GOMAXPROCS=4 go run hello.go
Transactions: 765301 hits
Availability: 100.00 %
Elapsed time: 29.52 secs
Data transferred: 8.03 MB
Response time: 0.00 secs
Transaction rate: 25924.83 trans/sec
Throughput: 0.27 MB/sec
Concurrency: 19.68
Successful transactions: 765301
Failed transactions: 0
Longest transaction: 0.02
Shortest transaction: 0.00
GOMAXPROCS=1 go run hello.go
Transactions: 478991 hits
Availability: 100.00 %
Elapsed time: 29.47 secs
Data transferred: 5.02 MB
Response time: 0.00 secs
Transaction rate: 16253.51 trans/sec
Throughput: 0.17 MB/sec
Concurrency: 19.75
Successful transactions: 478992
Failed transactions: 0
Longest transaction: 0.02
Shortest transaction: 0.00
UnderTow (4 cores):
Transactions: 965835 hits
Availability: 100.00 %
Elapsed time: 29.41 secs
Data transferred: 10.13 MB
Response time: 0.00 secs
Transaction rate: 32840.36 trans/sec
Throughput: 0.34 MB/sec
Concurrency: 19.57
Successful transactions: 965836
Failed transactions: 0
Longest transaction: 0.01
Shortest transaction: 0.00
Kore.io (4 workers)
Transactions: 2043 hits
Availability: 100.00 %
Elapsed time: 29.61 secs
Data transferred: 0.02 MB
Response time: 0.29 secs
Transaction rate: 69.00 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 19.96
Successful transactions: 2043
Failed transactions: 0
Longest transaction: 0.55
Shortest transaction: 0.00
So it seems vibed has the best results :)