Quote:
Originally Posted by 10110111
i asked about software to play with its source code
|
I'm sure you can find some open source software for data compression. Set to its slowest mode (maximum compression) data compression software tends to be a good test of the quality of code generation in a compiler.
Quote:
such software should be CPU&memory intensive and compilable both in linux (GCC) and windoze (MSVC).
|
I don't think you really want memory intensive. The code quality from the compiler is rarely any performance factor at all in a memory intensive task. The OS might be a big factor. The algorithm in the source code is probably an important factor. But the compiler is generally not a factor.
Also testing linux against windows at the same time you test gcc against msvc may be very misleading. Will you know which difference matters?
Quote:
You mean IA32 or IA64 (Win## usualy stands for windoze architecture)?
|
In that case I would have meant IA32 vs. x86_64. IA64 is a much less common architecture.
I did mean win32 vs. win64, because I assumed you were comparing compilers under equal conditions.
Quote:
Or, maybe you suppose i'm going to test GCC in cygwin under windoze?
|
I was hoping you meant win64, so I expected you would test 64bit Mingw against MSVC.
I don't know where you can get a decent version of gcc for win32 from either Mingw or Cygwin. I've only found fairly old lame versions of gcc for 32 bit Cygwin and Mingw.
BTW, are you using the expensive version of MSVC or the intentionally performance sabotaged free version?
Quote:
I do on IA32, for instance, Pentium 4, and i am going to try MSVC under windoze, and GCC under linux.
I have installed 4.1.2 as LFS of the time of compiling offered it, but i would like to test newer versions on another, binary distro.
|
In linux X86_64 the performance improvement in gcc generated code is significant from 4.1.2 to 4.3.2. I think 4.4 has even more performance improvements. But I don't know if any of those improvements have the same impact in IA32. Even in win64, the ABI has a significant difference from the X86_64 standard, which will impact the effectiveness of various choices the compiler makes. The developers of 64 bit Mingw are just looking for compliance with the win64 ABI while the developers of gcc look at x86_64 performance only for the standard ABI. With no one actively tuning gcc's win64 performance, there are likely flaws.
I'm still bothered by your choice of masking a compiler comparison with an OS comparison. If you manage to select CPU intensive programs where the quality of code generation matters and the memory accesses, the I/O and the math library are all less significant, then the OS can be kept from skewing the results. But that narrows the right answers to your original question and I'm not sure I know any.
BTW, the math library can skew things a LOT. Some of my own performance testing accidentally compared a GNU version of the exp() function with an Intel version. On some ranges of input the Intel version is so much faster that this difference dominates the entire result, even though I though I was comparing performance of a complex simulation of which calls to exp() were a minor part.