[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNU make 3.81beta4 released
From: |
Markus Mauhart |
Subject: |
Re: GNU make 3.81beta4 released |
Date: |
Sat, 21 Jan 2006 15:49:34 +0100 |
"Eli Zaretskii" <address@hidden> wrote ...
>
>> From: "Markus Mauhart" <address@hidden>
>> Date: Fri, 20 Jan 2006 23:29:12 +0100
>>
>> >> Btw, such successfull "-j 64"-build then sometimes uses ~50 compilers
>> >> in parallel - with my 1GB this is no problem with msvc71, while yet "-j
>> >> 3" is
>> >> a big problem with mingw-gcc344 (both -O2).
>> >
>> > What do you mean by ``a big problem''? Could you tell the details?
>>
>> consuming (allmost) too much memory - with mingw-gcc344 I had to stop it
>> cause it would take at least 100 times the "-j 1" time, and even with "-j 4"
>> I stopped it after ~1m cause 4 compilers sometimes concurrently touching
>> phys-RAM * 1.2 (1.5 including the rest of the system) is a significant
>> performance problem, at least with winXP.
>
> I tried "make -j" with MinGW building a program that needed 18 C
> source files to be compiled and then linked into a single executable.
> I don't see the problems you describe. All I see is several
> compilations being started in parallel; the build takes 3 seconds,
> which in this case is not an improvement wrt the non-parallel build,
> but it's not slower, either.
>
> How much time does it take for the average GCC compile of a single
> file in your case, and how much time does it take with MSVC, for the
> package you were building?
I will post the necessary URLs to reproduce my tests today.
Please keep in mind that my "mode 1" means to include all c[++] files
of a sub-project into one temporary c[++] file which then is compiled
at once - so your test's unit was a single C-file, my unit is multiple
C++ - files concatenated.
A ususal c++ - pkg (complete build = 25 C++ and 10 C-pkgs):
15 cpp files, 200KB (all included into one file for compilation )
Including and using many non-trivial c++-headers.
-O2 Compilation in "mode 1" (all files included into one temp file):
using msvc++: 6s
using mingw-gcc344: 20s
But the biggest difference is memory consumption:
Gcc needs >= 10x more room, and it never releases (un-"commits") that
room during one 10s compilation, while MSVC seems to un-"commit".
As a result, w.r.t memory stress, I'd say 30 MSVC running in parallel
compare to 2 concurrent GCC's.
complete builds:
msvc 3m20s
msvc -j 2 1m42s 20-40MB committed
msvc -j 64 1m55s usually 20-50 cl.exe living together
gcc 10m25s
gcc -j 2 5m40s 300-600MB committed; the last (single-threaded) link takes
25s
gcc -j 3 6m08s
Maybe I'll find time to make screenshots of taskmgr.exe.
Best Regards,
Markus.
- Re: GNU make 3.81beta4 released, (continued)
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/20
- Re: GNU make 3.81beta4 released, Paul D. Smith, 2006/01/20
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/20
- Re: GNU make 3.81beta4 released, Paul D. Smith, 2006/01/20
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/20
- Re: GNU make 3.81beta4 released, Paul D. Smith, 2006/01/20
- Re: GNU make 3.81beta4 released, Markus Mauhart, 2006/01/20
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/21
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/21
- Re: GNU make 3.81beta4 released, Markus Mauhart, 2006/01/22
- Re: GNU make 3.81beta4 released,
Markus Mauhart <=
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/21
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/21
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/21
- Re: GNU make 3.81beta4 released, Markus Mauhart, 2006/01/22
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/23
- Re: GNU make 3.81beta4 released, Markus Mauhart, 2006/01/21
- Re: GNU make 3.81beta4 released, Markus Mauhart, 2006/01/21
- Re: GNU make 3.81beta4 released, Markus Mauhart, 2006/01/22
- Re: GNU make 3.81beta4 released, Paul D. Smith, 2006/01/20
- Re: GNU make 3.81beta4 released, Eli Zaretskii, 2006/01/20