[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lmi] Upgrading to gcc-4.9.2

From: Greg Chicares
Subject: Re: [lmi] Upgrading to gcc-4.9.2
Date: Thu, 17 Dec 2015 05:14:31 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.3.0

On 2015-12-17 02:28, Greg Chicares wrote:
> gcc-3.4.5 was released 2005-11-30, just over ten years ago. It's high
> time we upgraded. It's also time to forsake the moribund mingw.org and
> migrate to MinGW-w64

My first impression from looking at our unit tests is that MinGW-w64's
snprintf() and rounding functions may be of lower quality than
mingw.org's. We might want to import those parts of the mingw.org
sources into lmi.

The build time changes dramatically. Here's a recent clean build with
  dual E5520, HDD = 2TB WD caviar black, 3 GBPS SATA II motherboard
  32-bit msw-xp guest in qemu-kvm
  3:19 with '--jobs=16' vs. 17:55 without parallelism
Contrast that with this clean build I just ran on the same system with
gcc-4.9.2, using the same command:
  $time make $coefficiency install check_physical_closure >../log 2>&1
  1078.15s user 808.14s system 193% cpu 16:12.84 total
That's 973s vs. 199s, so the old compiler was five times as fast. And
the new build doesn't yet link because of that wxPdf issue, so in
reality it's going to take even longer.

Compiling with gcc-3.4.5 pinned all 16 cores at the maximum. With
gcc-4.9.2, they were usually about 30% loaded; total CPU utilization
reached a brief peak of 62%, but only for a fraction of a second.
And the newer compiler used far less RAM: I've been using
  --param ggc-min-expand=25 --param ggc-min-heapsize=32768
with gcc-3.4.5 in order to compile 16 source files at once within
four GB, but with gcc-4.9.2 I removed those flags and barely needed
two GB. I'm conjecturing that gcc-4.9.2 is IO-bound, and hoping that
its performance will be much better with a SATA III motherboard and
a fast SSD for the msw VM, and even more so when cross-compiling in
GNU/Linux using tmpfs.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]