Shlomi Fish wrote:
>>5) Your solver takes about 70% longer to run with the MS Visual C++
>>Toolkit 2003 as compared to MSVC v6. I've tried all sorts of compiler
>>flags and haven't figured out why yet. That web page claims it is
>>optiimizing. I've tried
>> CC=cl /GL /G7 /Ox
>> and it was even slightly (a couple of percent) slower than not having
>>all that there. I do not know why this is the case. The later compiler
>>from MS is supposed to generate better code. Maybe
>>
>>
>>
>
>Maybe what? In any case, I don't see a reason why it should be so worse. It's
>quite interesting.
>
The truncated "Maybe": I don't know why that happened.
Here's my speculation: I realize that the solver has to use a lot of
memory to check out lots of moves. Well, the problem is not the sheer
amount of memory used. Rather for some reason perhaps the newer compiler
is slower at free/malloc. It might cache less and turn more back over to
the OS and thereby cause more context switches into the OS kernel. Those
are costly.
You might consider implementing a way to do fewer larger malloc calls
that then hand out smaller chunks of memory. I don't know the structure
of your code and how difficult that would be to do.
If you want to suggest any build or run flags for me to try that might
provide insight into the MS Visual C++ Toolkit 2003 performance problem
I'd be happy to try them.
Received on Fri Apr 23 2004 - 08:50:02 IDT