Computer Chess Club Archives




Subject: Re: C and C++ --- NPS

Author: Gerd Isenberg

Date: 17:33:34 12/24/02

Go up one level in this thread

On December 23, 2002 at 21:33:50, Matt Taylor wrote:

>On December 23, 2002 at 21:29:08, Arshad F. Syed wrote:
>>Is there anyone here who has actually converted their C code to C++ while
>>keeping the NPS the same or even managed to improve upon it? Sune did mention
>>that he did so only at the cost of 15% degradation in speed. Why do people even
>>bother wasting their time with C++ for a chess program when it inevitably leads
>>to taking a hit in NPS? Regardless, of all the advice to simply inline the
>>functions, I have yet to see a living example of chess program code which
>>performed faster in C++.
>The biggest hit you take in C++ is virtual functions, and inevitably people use
>them. The virtual functions are very damaging due to the fact that they're
>implemented with a function pointer, and at the machine level it translates into
>an indirect call. The indirect calls branch mispredict because the CPU can't
>figure out ahead-of-time where you're calling to, and branch mispredicts are

Hi Matt,

really? The vtable index of a virtual function is a compile time constant.
Is an indirect call via register a mispredicted branch per se, even if the
register was loaded with this->vptr->someVfunctionPointer an appropriate time
before the indirect call occurs? What branch could be executed, other than the
determined indirect call?

>Unfortunately, not using virtual functions (mostly) defeats the benefits you
>would get from OO here.
>If you convert to C++ without using virtual functions, you probably won't take
>much of a hit at all. Personally, I've never seen a -need- to convert to C++. I
>can implement my OO in C, and it simplifies linking because C doesn't have name

But polymorphism is nice to have, even without virtual functions.
I don't believe that name mangling affects the linker a lot ;-)



This page took 0.03 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.