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

Sven Eschenberg eschenb@cs.uni-frankfurt.de
Thu Mar 8 17:10:00 GMT 2007


Hi Shane,

I am wondering if you are using large memory support in linux (since you 
got 2GB)? I am asking, because on my system I experienced the following 
strange behavior:

Compiling a whole package, which is fairly big the compile time varies 
strongly between the setup of using  large memory support and when not 
using it. As soon as I use large memory support the compile times grows 
by a factor between 2 and 3, I never did a profiling, what exactly 
causes the slow down, it just seems obvious that the large memory 
support causes a massive slowdown (certainly on memory access). I wonder 
if you are basically having the same problem. Maybe, after collecting 
some profiling data, you might come to the conclusion that memory access 
takes a lot of time, maybe you could check against a kernel without 
large memory support.

I might be completely wrong, but it came across my mind, since you got 2 
GB of RAM and might have large memory support enabled.

Regards

-Sven


Shane R 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)



More information about the Gcc-help mailing list