Re: Release vibe.d 0.7.27
On Sunday, 14 February 2016 at 08:17:34 UTC, Sönke Ludwig wrote: Am 11.02.2016 um 00:24 schrieb sigod: Did some benchmarks between `std.net.curl.get` and `vibe.http.client.requestHTTP`. Only GET requests. 100 requests, ~1.4mb file: curl total: 131304, average: 1 sec and 313 ms vibe total: 21975, average: 219 ms 52 different files: curl total: 24851, average: 477 ms vibe total: 11290, average: 217 ms 50 different files (excluded 2 of the biggest ones): curl total: 20892, average: 417 ms vibe total: 11368, average: 227 ms (Looks like `std.net.curl.get` doesn't like if file is bigger than ~1mb.) Is vibe.d's API really that fast? Or am I doing something wrong? How fast was the network connection in that case? Could it make a difference if keep-alive connections are used or not? Were the requests done in parallel or in sequence? I certainly wouldn't expect curl to be slower for a simple sequential transfer of a single file, but who knows. https://gist.github.com/sigod/c78c61ac6118fa9fda26 I'm getting something like this: HTTPS: curl total: 23401, average: 458ms vibe total: 12136, average: 237ms HTTP: curl total: 5577, average: 278ms vibe total: 4268, average: 213ms Windows 7 x86, dmd 2.070.0
Re: Release vibe.d 0.7.27
Am 11.02.2016 um 00:24 schrieb sigod: Did some benchmarks between `std.net.curl.get` and `vibe.http.client.requestHTTP`. Only GET requests. 100 requests, ~1.4mb file: curl total: 131304, average: 1 sec and 313 ms vibe total: 21975, average: 219 ms 52 different files: curl total: 24851, average: 477 ms vibe total: 11290, average: 217 ms 50 different files (excluded 2 of the biggest ones): curl total: 20892, average: 417 ms vibe total: 11368, average: 227 ms (Looks like `std.net.curl.get` doesn't like if file is bigger than ~1mb.) Is vibe.d's API really that fast? Or am I doing something wrong? How fast was the network connection in that case? Could it make a difference if keep-alive connections are used or not? Were the requests done in parallel or in sequence? I certainly wouldn't expect curl to be slower for a simple sequential transfer of a single file, but who knows.
Re: Release vibe.d 0.7.27
Dne 10.2.2016 v 09:50 Iain Buclaw via Digitalmars-d-announce napsal(a): On 9 February 2016 at 20:16, Sönke Ludwig> wrote: This release brings some larger changes: - The library has been split up into sub packages: code, utils, data, http, mail, diet, mongodb, redis and web. This is an intermediate step to moving the individual packages out to separate repositories with independent version numbers. - A lot of work went into performance tuning. Single-core performance of the HTTP server is improved by about +50% and multi-core performance scales properly again after excessive lock contention sneaked in in one of the previous releases. The number of worker threads is now also properly determined on all systems (including multi-CPU), which should fix the numbers for multi-threaded benchmarks (an update to the TechEmpower benchmark suite is on the way). - The REST interface generator now supports modelling collections with native D syntax using Collection!T. It also adds support for CORS. - The std.concurrency integration has been fixed and re-enabled - you can now use std.concurrency without worrying about blocking the event loop. In case of problems (std.concurrency doesn't support passing certain kinds of values), the old implementation can still be accessed as sendCompat/receiveCompat/... - Compiles on 2.066.0 up to 2.070.0. Note that this will be the last release that supports the 2.066.x frontend. The next release will require at least 2.067.0 or maybe even 2.068.0 (still TBD). This may unfortunately rule out GDC for the time being. Not a problem. We may be on 2.068 sooner than you think (I know that 2.067 has been in branch/PR forever ;-) Iain. Wow, that would be awesome :)
Re: Release vibe.d 0.7.27
Am 10.02.2016 um 09:50 schrieb Iain Buclaw via Digitalmars-d-announce: Not a problem. We may be on 2.068 sooner than you think (I know that 2.067 has been in branch/PR forever ;-) Iain. Really glad to hear that! BTW, is anything moving w.r.t. integrating GDC (and LDC) to the auto tester for the DMD frontend?
Re: Release vibe.d 0.7.27
On 10 February 2016 at 10:49, Sönke Ludwig < digitalmars-d-announce@puremagic.com> wrote: > Am 10.02.2016 um 09:50 schrieb Iain Buclaw via Digitalmars-d-announce: > >> >> Not a problem. We may be on 2.068 sooner than you think (I know that >> 2.067 has been in branch/PR forever ;-) >> >> Iain. >> > > Really glad to hear that! BTW, is anything moving w.r.t. integrating GDC > (and LDC) to the auto tester for the DMD frontend? > Don't think so. We have Travis CI building DMD with GDC and LDC for each PR, however I don't know whether or not the auto-tester takes the success/failure of these builds into account.
Re: Release vibe.d 0.7.27
On 2016-02-09 19:16:49 +, Snke Ludwig said: - Full list of changes: http://vibed.org/blog/posts/vibe-release-0.7.27 Great stuff!! Thanks a lot for your engagement. -- Robert M. Münch http://www.saphirion.com smarter | better | faster
Re: Release vibe.d 0.7.27
On 9 February 2016 at 20:16, Sönke Ludwig < digitalmars-d-announce@puremagic.com> wrote: > This release brings some larger changes: > > - The library has been split up into sub packages: code, utils, data, >http, mail, diet, mongodb, redis and web. This is an intermediate >step to moving the individual packages out to separate repositories >with independent version numbers. > > - A lot of work went into performance tuning. Single-core performance >of the HTTP server is improved by about +50% and multi-core >performance scales properly again after excessive lock contention >sneaked in in one of the previous releases. The number of worker >threads is now also properly determined on all systems (including >multi-CPU), which should fix the numbers for multi-threaded >benchmarks (an update to the TechEmpower benchmark suite is on the >way). > > - The REST interface generator now supports modelling collections with >native D syntax using Collection!T. It also adds support for CORS. > > - The std.concurrency integration has been fixed and re-enabled - you >can now use std.concurrency without worrying about blocking the >event loop. In case of problems (std.concurrency doesn't support >passing certain kinds of values), the old implementation can still >be accessed as sendCompat/receiveCompat/... > > - Compiles on 2.066.0 up to 2.070.0. Note that this will be the last >release that supports the 2.066.x frontend. The next release will >require at least 2.067.0 or maybe even 2.068.0 (still TBD). This may >unfortunately rule out GDC for the time being. > > Not a problem. We may be on 2.068 sooner than you think (I know that 2.067 has been in branch/PR forever ;-) Iain.
Re: Release vibe.d 0.7.27
On Wednesday, 10 February 2016 at 08:50:54 UTC, Iain Buclaw wrote: On 9 February 2016 at 20:16, Sönke Ludwig < digitalmars-d-announce@puremagic.com> wrote: This release brings some larger changes: - The library has been split up into sub packages: code, utils, data, http, mail, diet, mongodb, redis and web. This is an intermediate step to moving the individual packages out to separate repositories with independent version numbers. - A lot of work went into performance tuning. Single-core performance of the HTTP server is improved by about +50% and multi-core performance scales properly again after excessive lock contention sneaked in in one of the previous releases. The number of worker threads is now also properly determined on all systems (including multi-CPU), which should fix the numbers for multi-threaded benchmarks (an update to the TechEmpower benchmark suite is on the way). - The REST interface generator now supports modelling collections with native D syntax using Collection!T. It also adds support for CORS. - The std.concurrency integration has been fixed and re-enabled - you can now use std.concurrency without worrying about blocking the event loop. In case of problems (std.concurrency doesn't support passing certain kinds of values), the old implementation can still be accessed as sendCompat/receiveCompat/... - Compiles on 2.066.0 up to 2.070.0. Note that this will be the last release that supports the 2.066.x frontend. The next release will require at least 2.067.0 or maybe even 2.068.0 (still TBD). This may unfortunately rule out GDC for the time being. Not a problem. We may be on 2.068 sooner than you think (I know that 2.067 has been in branch/PR forever ;-) Iain. Does your company use D?
Re: Release vibe.d 0.7.27
Did some benchmarks between `std.net.curl.get` and `vibe.http.client.requestHTTP`. Only GET requests. 100 requests, ~1.4mb file: curl total: 131304, average: 1 sec and 313 ms vibe total: 21975, average: 219 ms 52 different files: curl total: 24851, average: 477 ms vibe total: 11290, average: 217 ms 50 different files (excluded 2 of the biggest ones): curl total: 20892, average: 417 ms vibe total: 11368, average: 227 ms (Looks like `std.net.curl.get` doesn't like if file is bigger than ~1mb.) Is vibe.d's API really that fast? Or am I doing something wrong?
Re: Release vibe.d 0.7.27
On Tuesday, 9 February 2016 at 19:16:49 UTC, Sönke Ludwig wrote: This release brings some larger changes: - The library has been split up into sub packages: code, utils, data, http, mail, diet, mongodb, redis and web. This is an intermediate step to moving the individual packages out to separate repositories with independent version numbers. [...] Awesome! Thanks for all the hard work. --Stephan
Release vibe.d 0.7.27
This release brings some larger changes: - The library has been split up into sub packages: code, utils, data, http, mail, diet, mongodb, redis and web. This is an intermediate step to moving the individual packages out to separate repositories with independent version numbers. - A lot of work went into performance tuning. Single-core performance of the HTTP server is improved by about +50% and multi-core performance scales properly again after excessive lock contention sneaked in in one of the previous releases. The number of worker threads is now also properly determined on all systems (including multi-CPU), which should fix the numbers for multi-threaded benchmarks (an update to the TechEmpower benchmark suite is on the way). - The REST interface generator now supports modelling collections with native D syntax using Collection!T. It also adds support for CORS. - The std.concurrency integration has been fixed and re-enabled - you can now use std.concurrency without worrying about blocking the event loop. In case of problems (std.concurrency doesn't support passing certain kinds of values), the old implementation can still be accessed as sendCompat/receiveCompat/... - Compiles on 2.066.0 up to 2.070.0. Note that this will be the last release that supports the 2.066.x frontend. The next release will require at least 2.067.0 or maybe even 2.068.0 (still TBD). This may unfortunately rule out GDC for the time being. - Full list of changes: http://vibed.org/blog/posts/vibe-release-0.7.27 Homepage: http://vibed.org/ DUB package: http://code.dlang.org/packages/vibe-d GitHub: https://github.com/rejectedsoftware/vibe.d
Re: Release vibe.d 0.7.27
On Tuesday, 9 February 2016 at 19:16:49 UTC, Sönke Ludwig wrote: This release brings some larger changes: - A lot of work went into performance tuning. Single-core performance of the HTTP server is improved by about +50% and multi-core performance scales properly again after excessive lock contention sneaked in in one of the previous releases. The number of worker threads is now also properly determined on all systems (including multi-CPU), which should fix the numbers for multi-threaded benchmarks (an update to the TechEmpower benchmark suite is on the way). I look forward to reading the numbers, and seeing how it compares, to other web servers :) Nick
Re: Release vibe.d 0.7.27
On 02/09/2016 09:16 PM, Sönke Ludwig wrote: > This release brings some larger changes: > > ... Changelog looks very exciting, good work!
Re: Release vibe.d 0.7.27
On 2/9/16 2:16 PM, Sönke Ludwig wrote: - Full list of changes: http://vibed.org/blog/posts/vibe-release-0.7.27 Homepage: http://vibed.org/ DUB package: http://code.dlang.org/packages/vibe-d GitHub: https://github.com/rejectedsoftware/vibe.d Congrats!! -- Andrei