On Thu, 06 Jun 2013 13:50:11 -0400, deadalnix <[email protected]> wrote:

On Thursday, 6 June 2013 at 15:06:38 UTC, Kapps wrote:
On Thursday, 6 June 2013 at 01:08:36 UTC, deadalnix wrote:
This is why I wrote that this may have been true in the past. Nevertheless, it is completely false today.

C# often does not inline virtual methods, and even if it can inline them there's still an overhead. This (2008) article goes into depth about how it handles it: www.codeproject.com/Articles/25801/JIT-Optimizations - Essentially uses frequency analysis to determine if the virtual method call is still going to call the same method as it would previously. Regardless, we can not perform such optimizations, so whether or not it applies to C#, it does apply to D.


Quite frankly, I don't care what C# does. Java does it at link time, and we can do it at link time the same way, that is all that matter for this discussion.

How do you finalize a method with the possibility that a dynamic library will come along and extend that type? Not a rhetorical question, I really want to know if there is a way. Java and C# clearly have more flexibility there, since they are run on a VM.

-Steve

Reply via email to