This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Linux c++ opmization--- linux runs at half the speed of windows?


Hi,

You should try profiling, it should help you to find the place were
program is taking longest (gprof). Maybe you use some floating point
operations??? Commercial compilers often like to use non IEEE compliant
floating operations, try -ffast-math...

> Is your windows compiler doing automatic parallelization by chance?
> Twice as fast on a dual core processor is a bit too coincidental.  :-)
> 
> On 3/8/07, Shane R <crazguy22@hotmail.com> wrote:
>> Hi,
>>
>> I hope this is the appropriate forum. Please direct me to the correct
>> one if
>> it is not.
>>
>> I am trying to optimize a c++ application that I ported from a windows
>> system to Linux.
>> The app is a terminal based application that does some one time file
>> io at
>> the start then runs completely in memory. After the one time io the
>> app runs
>> successive timed epochs on the same data in Windows as Linux. The app
>> is a
>> program that runs some code for doing non-linear optmization (math
>> stuff).
>>
>> The reason why I am posting is that I timed the time it takes for the
>> application to complete an epoch. It take twice as long in Linux as
>> windows?!?!
>>
>> My system is an Intel Centrino Duo with 2gigs of ram. The application is
>> only using a fraction of available memory in windows and linux. The
>> application is single-threaded in both.
>>
>> I am using Visual Studio 2003 in Windows and when I type gcc -v I get:
>> Target: i486-linux-gnu
>> Configured with: ../src/configure -v
>> --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
>> --enable-shared --with-system-zlib --libexecdir=/usr/lib
>> --without-included-gettext --enable-threads=posix --enable-nls
>> --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
>> --enable-libstdcxx-debug --enable-mpfr --enable-checking=release
>> i486-linux-gnu
>> Thread model: posix
>> gcc version 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)
>>
>>
>>
>> I am currently using these g++ options:
>>
>> CFLAGS = -o3 -O3 -march=pentium4 -ffast-math  -funroll-loops -Wall
>> -Wno-return-type
>>
>> But I have tried every permutation of the above options to virtually no
>> effect
>>
>> The average run time of an epoch in windows is about 3000 milliseconds
>> while
>> the average run time of an epoch in Linux is 6000!
>>
>> I don't know if it matters but I am doing calls to the rand() function in
>> both my windows and linux apps.
>>
>> On another note does anyone have any experience with the Intel drop in
>> replacement for GCC?
>>
>> Thanks in advance for any help,
>>
>> Shane
>>
>> _________________________________________________________________
>> Match.com - Click Here To Find Singles In Your Area Today!
>> http://match.engb.msn.com/
>>
>>
> 
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]