public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
From: Tom St Denis <tstdenis@ellipticsemi.com>
To: "J.C. Pizarro" <jcpiza@gmail.com>
Cc: Galloth <lordgalloth@gmail.com>, gcc-help@gcc.gnu.org
Subject: Re: reduce compilation times?
Date: Tue, 27 Nov 2007 16:46:00 -0000	[thread overview]
Message-ID: <474C4940.4010809@ellipticsemi.com> (raw)
In-Reply-To: <998d0e4a0711270827j6c8f3a41h4d02c62c604a27cf@mail.gmail.com>

J.C. Pizarro wrote:
> 2007/11/27, Galloth <lordgalloth@gmail.com> wrote:
>   
>>> * to put more machines with more cores per chip (quadcore?),
>>>    bigger caches (8 MiB L2?) and higher frequencies
>>>       
>> Does it means that gcc can use several cores for one compilation (If
>> yes, how to activate this, please) or this is the same idea as using
>> make -j (several compilations at once)
>>     
>
> It's the same problem of "Nine Woman Can't Have a Baby in One Month"
>
> "Nine Cores Can't Reduce a Compilation of 9 Seconds to One Second"
>
> I believe that it's possible to reduce it but it's very hardful.
>   

This is why you should re-factor your code as to contain only one [or as 
few as possible] exportable functions per unit. 

If you write an entire 100K line program as "main.c" of course you'll be 
hit by slow compiles.

But if you factor the code you can get good savings.  For instance, one 
of my OSS projects (if you know who I am you know what I'm talking 
about) is ~50K lines and compiles in ~29 seconds on a pentium 4.  It 
builds in 8 seconds a quad-core Intel Core2.  For most files [units] I 
only have one function, so the line count per file is on average ~200 or so.

Tom

  reply	other threads:[~2007-11-27 16:43 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-27 16:07 J.C. Pizarro
2007-11-27 16:19 ` Brian Dessent
2007-11-27 16:26   ` J.C. Pizarro
     [not found] ` <5abcb5650711270804o171e1facr565beec70314af75@mail.gmail.com>
2007-11-27 16:41   ` J.C. Pizarro
2007-11-27 16:46     ` Tom St Denis [this message]
2007-11-27 17:16       ` J.C. Pizarro
2007-11-27 17:46         ` Tom St Denis
2007-11-27 18:26           ` Wesley Smith
2007-11-27 19:35       ` NightStrike
2007-11-27 19:41         ` John (Eljay) Love-Jensen
2007-11-27 19:49         ` Tom St Denis
2007-11-28  9:19           ` Brian Dessent
2007-11-28 12:07             ` Tom St Denis
2007-11-28 12:35               ` Brian Dessent
2007-11-27 17:44     ` Vladimir Vassilev
     [not found]       ` <998d0e4a0711271310k657b791cy6ad5cc5721105f4c@mail.gmail.com>
2007-11-27 22:30         ` J.C. Pizarro
  -- strict thread matches above, loose matches on Subject: below --
2007-11-28 16:06 J.C. Pizarro
2007-11-28 16:16 ` Tom St Denis
2007-11-28 16:34   ` J.C. Pizarro
2007-11-28 18:18     ` Tom St Denis
2007-11-28 13:56 Duft Markus
2007-11-28 14:35 ` Tom St Denis
2007-11-29  0:23 ` Tim Prince
2007-11-28 13:25 Duft Markus
2007-11-28 13:26 ` Tom St Denis
2007-11-28 12:36 Duft Markus
2007-11-28  7:57 Duft Markus
2007-11-28 12:01 ` J.C. Pizarro
2007-11-28 12:28   ` Tom St Denis
2007-11-28 12:49     ` Fabian Cenedese
2007-11-28 13:03       ` Tom St Denis
2007-11-28 12:52     ` J.C. Pizarro
2007-11-28 13:17       ` Tom St Denis
2007-11-28 13:40         ` J.C. Pizarro
2007-11-28 13:51           ` Tom St Denis
2007-11-28 13:59             ` Tom St Denis
2007-11-28 15:51             ` John (Eljay) Love-Jensen
2007-11-28 13:30       ` Ted Byers
2007-11-28 12:12 ` John (Eljay) Love-Jensen
2007-11-28 12:31   ` J.C. Pizarro
2007-11-28 12:39     ` Tom St Denis
2007-11-28 12:54     ` John (Eljay) Love-Jensen
2007-11-28 12:18 ` Tom St Denis
2007-11-28 13:09   ` Ted Byers
2007-11-27 10:04 mahmoodn
2007-11-27 11:11 ` Andrew Haley
2007-11-27 11:15   ` mahmoodn
2007-11-27 11:30     ` Andrew Haley
2007-11-27 12:20       ` mahmoodn
2007-11-27 12:25         ` John Love-Jensen
2007-11-27 15:27           ` Tim Prince
2007-11-27 14:07         ` Andrew Haley
2007-11-28  9:01           ` mahmoodn
2007-11-28 12:11             ` John (Eljay) Love-Jensen
2007-11-30  9:15               ` mahmoodn
2007-11-30 13:33                 ` mahmoodn
2007-11-27 15:48   ` Sven Eschenberg
2007-11-27 16:27     ` Andrew Haley
2007-11-27 18:51       ` Sven Eschenberg
2007-11-27 19:21         ` Andrew Haley
2007-11-27 20:43           ` Sven Eschenberg
2007-12-01 12:20   ` mahmoodn
2007-12-03 16:14     ` Andrew Haley
2007-12-04 11:23       ` mahmoodn
2007-12-04 12:19         ` Tom Browder
2007-12-05  7:44           ` mahmoodn
2007-12-05 10:24             ` Tom Browder
2007-12-05 10:29               ` mahmoodn
2007-11-27 13:48 ` John Love-Jensen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=474C4940.4010809@ellipticsemi.com \
    --to=tstdenis@ellipticsemi.com \
    --cc=gcc-help@gcc.gnu.org \
    --cc=jcpiza@gmail.com \
    --cc=lordgalloth@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).