How can D become adopted at my company?
Jonathan M Davis
jmdavisProg at gmx.com
Sat Apr 28 03:01:57 PDT 2012
On Saturday, April 28, 2012 11:35:19 SomeDude wrote:
> Right, I understand the situation better now. So basically,
> what's needed is the custom allocators, and the GC would be
> relieved from much of the work. That would still not work for
> hard real time embedded, but for those applications, there are
> lots of restrictions on memory anyway (no dynamic allocation for
> once), so it wouldn't change much.
With custom allocators and/or shared pointers/references, you can pretty much
avoid the GC entirely for classes as well as any structs that you put on the
heap. So, you'd be in essentially the same place that C++ is for that.
It's just arrays that you can't really fix. If you restrict yourself to what
C/C++ can do with arrays (plus taking advantage of the length property), then
you're fine, but if you do much beyond that, then you need the GC or you're
going to have problems.
So, as long as you're careful with arrays, you should be able to have the
memory situation be pretty much identical to what it is in C/C++. And, of
course, if you can afford to use the GC in at least some of your code, then
it's there to use.
I believe that the typical approach however is to use the GC unless profiling
indicates that it's causing you performance problems somewhere, and then you
optimize that code so that it minimizes its GC usage or so that it avoids the
GC entirely. That way, your program as a whole can reap the benefits granted by
the GC, but your performance-critical code can still be performant.
Actually, now that I think about it, delegates would be another area where
you'd have to be careful, since they generally end up having to have closures
allocated for them when you pass them to a function unless that function them
takes them as scope parameters. But it's easy to avoid using delegates if you
want to. And if you want to program in a subset of the language that's closer
to C, then you probably wouldn't be using them anyway.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list