Computer Chess Club Archives


Search

Terms

Messages

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

Author: Matt Taylor

Date: 18:33:50 12/23/02

Go up one level in this thread


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++.
>
>Regards,
>Arshad

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
expensive.

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
mangling.

-Matt



This page took 0.15 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.