On Sun, 09 Aug 2015 19:10:23 GMT, Etienne Cimon wrote:
On Sat, 08 Aug 2015 16:06:35 GMT, Yazan D wrote:
The code I'm using is available here.
On my windows 8.1 laptop:
I tried this with ./ab -c 1 -n 50000 http://127.0.0.1:8080
Server Software: vibe.d/0.7.24 Server Hostname: 127.0.0.1 Server Port: 8080 Document Path: /\= Document Length: 83 bytes Concurrency Level: 1 Time taken for tests: 18.917 seconds Complete requests: 50000 Failed requests: 0 Non-2xx responses: 50000 Total transferred: 11500000 bytes HTML transferred: 4150000 bytes Requests per second: 2643.13 [#/sec] (mean) Time per request: 0.378 [ms] (mean) Time per request: 0.378 [ms] (mean, across all concurrent requests) Transfer rate: 593.67 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.6 0 5 Processing: 0 0 1.1 0 5 Waiting: 0 0 1.0 0 5 Total: 0 0 1.2 0 5 Percentage of the requests served within a certain time (ms) 50% 0 66% 0 75% 0 80% 0 90% 0 95% 5 98% 5 99% 5 100% 5 (longest request)
With your code in vibe.d and libevent in release mode:
C:\Users\Etienne_2\documents\yula> dub run --build=release Performing "release" build using dmd for x86. Building vibe-d 0.7.24-rc.2+commit.3.g3d0974f configuration "libevent"... Building example ~master configuration "application"... Linking... Copying files for vibe-d... Running .\example.exe min : 0000.33 ms max : 0003.88 ms sum : 19967.09 ms mean: 0000.40 ms rps : 02504.1 rps
Pretty much the same ... ab might have an advantage if it leaves some headers out, I didn't get more into depth about it, I'll try and understand how you're getting those results.
I tried using libasync, and I get an exception everytime at the 100th request(!?).
Which libasync version did you use for this?
Hm sorry, I just noticed I was testing with vibe.d keep-alive vs ab no keep-alive.
I think ab might have some optimizations, will have to check