On Fri, 04 Feb 2011 16:07:02 -0500, bearophile <[email protected]> wrote:

Steven Schveighoffer:

D's monitors are lazily created, so there should be no issue with resource allocation. If you don't ever lock an object instance, it's not going to
consume any resources.

One more thing.
I remember working with LDC some developers to speed up the stack (scope) allocation of class instances (in D1), and I remember one of the slows down comes from the need to call something that sets the monitor pointer. This call to the runtime was never inlined by ldc, so it was a significant cost compared to similar class instances stack allocated by the JavaVM through escape analysis. So moniror management has a cost in LDC and I presume in DMD too, unless some inlining here will be somehow forced.

Bye,
bearophile

Well, in DMD the monitor is null prior to use, so I'm not sure what's happening in LDC, but I'd doubt DMD is making such a call just to set it to 0.

Reply via email to