On Mon, 06 Apr 2015 14:43:52 +0200, Sönke Ludwig wrote:

Am 05.04.2015 um 18:07 schrieb Dato:

(...)

Thanks, nice to now :). Also before we start diving deep in vibe, is there any pitfall, drawbacks we should be aware of? Is vibe.d stable enough to run a web server 24/7? is there any production system built on it? how does it do within heavy loaded environment?

There are several production systems running with vibe.d, so this is
certainly doable. However, one thing to be aware of is that it currently
still lacks certain kinds of DoS countermeasures, so if you want to use
it for a large-scale public service, there should be some kind of
proxy/load balancer system that provides those.

It scales well for high loads, but you have to be careful with using a
lot of garbage collected memory, because the garbage collector will stop
the whole process during collection runs. Generally it's a good idea to
use some form of reference counting for dynamic memory allocations (e.g.
vibe.utils.memory.FreeListRef or std.typecons.RefCounted).

I see. I guess those classes are similar to smart pointers. Just to make sure, is D's GC so bad? I can use RefCounted and FreeListRef, but what about vibe's internal implementation? We are going to have several thousand small requests per second and GC should also be an issue for vibe's internal allocations/calls no? Currently, our C# implementation handles ~7k requests per second without caching on a single server. According to our (dirty work) benchmarks, the system should perform at least 35% better when ported to GDC, but we didn't check GC to be honest...

Thanks again :)