I'm experiencing a problem with runtime and executable size instability. Between two versions of my engine, I only have minor changes (added a feature in version B that is not in version A) and no changes at all in the code that is executed in the test in question. In spite of this, the test (doing alpha-beta on the same 10 positions) runs about 5% faster for version B. Also, the executable of version B is about 5% smaller (though it contains one more feature).
My question: How can this happen? I'm using gcc4 on Suse Linux 10.0.
Additional information:
- - Node count is exactly the same for both versions.
- Valgrind's memcheck does not report any errors. (However I do not have much experience yet with that tool.)
- No matter if I use different positions or search depths, version B is always faster.