On Friday, 24 May 2013 at 10:24:13 UTC, Regan Heath wrote:
It's not the allocation caused by ~ which is the issue though is it, it's the collection it might trigger, right?

Depends. When it comes to real-time software you can't say without studying specific task requirements. Stop-the-world collection is a complete disaster but, for example, if you consider concurrent one like Leandro has shown - it can satisfy soft real-time requirements. But only if heap size managed by GC stays reasonably low - thus the need to control that you don't allocate in an unexpected ways.

So what you really need are 3 main things:

1. A way to prevent the GC collecting until a given point(*).

You can do it now. Does not help if world is stopped and/or you can't limit collection time.

2. A way to limit the GC collection time.

Or run it concurrently with low priority. Will do for lot of _soft_ real-time.

3. For phobos functions to be optimised to not allocate or to use alloca where possible.

Really important one as helps not only game dev / soft real-time servers, but also hardcore embedded.

Reply via email to