Slow performance compared to C++, ideas?

deadalnix deadalnix at gmail.com
Thu Jun 6 17:34:45 PDT 2013


On Thursday, 6 June 2013 at 18:27:10 UTC, Walter Bright wrote:
> On 6/6/2013 11:11 AM, deadalnix wrote:
>> It is also possible to automatically generate code like :
>> if (virtualMethod == givenMethod) {
>>     givenMethod();
>> } else {
>>     virtualMethod();
>> }
>>
>> It sound like it is completely stupid, but in fact, as the 
>> compiler know the
>> call you'll do, it can run optimizations.
>
> You're right, that is a valid optimization for virtual methods. 
> But, it is not as good as final, because the call to 
> virtualMethod() negatively affects the code generation even if 
> it is never called.
>
> (This is because of things like function calls destroy the 
> scratch registers, meaning that variables can't easily be 
> enregistered into them.)

Yes, which happen anyway for shared objects !


More information about the Digitalmars-d mailing list