D for Game Development

Iain Buclaw via Digitalmars-d digitalmars-d at puremagic.com
Thu Aug 6 02:38:28 PDT 2015


On 6 August 2015 at 11:18, Benjamin Thaut via Digitalmars-d
<digitalmars-d at puremagic.com> wrote:
> On Wednesday, 5 August 2015 at 16:44:03 UTC, jmh530 wrote:
>>
>> On Wednesday, 5 August 2015 at 08:53:39 UTC, Benjamin Thaut wrote:
>>>
>>>
>>> Regarding D's GC and Games written in D you can also take a look at a old
>>> project of mine and the results that came out of it.
>>>
>>> http://3d.benjamin-thaut.de/?p=20
>>
>>
>> Towards the end you list some performance and memory leaking issues in D.
>> Have you seen improvement in these areas?
>
>
>
> - Comparision of TypeInfo objects in druntime is done by building two
> strings and then comparing those two strings. This will always leak memory
> and do a lot of unneccesary allocations which are a performance bottleneck.
> I reworte the comparison so it does not allocate a single byte.
>
> I did a pull request to improve this once, but it was rejected. So this
> issue still remains. Comparing two type info objects still produces garbage.
>
> - Calls to the druntime invariant handler are emitted in release build also
> and there is no way to turn them off. Even if the class does not have any
> invariants the invariant handler will always be called, walk the class
> hirarchy and generate multiple cache misses without actually doing anything.
>
> Afaik this has been fixed.
>
> - The new statement will not free any memory if the constructor throws a
> exception. So you are forced to replace both the new and the delete
> statement. But you can not replace the new statement with similar nice
> syntax especially for inner classes and arrays.
>
> This issue still remains, although might improve soon with std.allocator.
> The language is not designed to make it possible for new/delete to be
> replaced in a nice way so most likely
>
> new int[3] will become allocator.makeArray!int(3)
>
> - Inlining of DMD. Inlining of DMD seems to be very minimal. Most of my
> overloaded operators are not inlined by dmd at all.
>
> This somewhat improved, especially with pragma(inline) but dmd is still
> really bad at inlining and I still can't compile all my projects with the
> -inline switch because dmd produces invalid function calls if I do so. And
> don't tell me to use a different compiler, on windows the only viable option
> still is dmd. Gdc for windows is no longer maintained and ldc is not there
> yet (but might be soon).
>

There are binaries that are released every so often (and announced in
the GDC channel), but not one seems to give feedback on them.

http://gdcproject.org/downloads


More information about the Digitalmars-d mailing list