All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felix von Leitner <usenet-20020126@fefe.de>
To: linux-kernel@vger.kernel.org
Subject: Re: [ACPI] ACPI mentioned on lwn.net/kernel
Date: Sat, 26 Jan 2002 18:33:03 +0100	[thread overview]
Message-ID: <20020126173303.GC11344@fefe.de> (raw)
In-Reply-To: <200201251550.g0PFoIPa002738@tigger.cs.uni-dortmund.de> <200201250802.32508.bodnar42@phalynx.dhs.org> <jeelkes8y5.fsf@sykes.suse.de> <a2sv2s$ge3$1@penguin.transmeta.com>
In-Reply-To: <a2sv2s$ge3$1@penguin.transmeta.com>

Thus spake Linus Torvalds (torvalds@transmeta.com):
> >These are all startup costs that are lost in the noise the longer the
> >program runs.
> That's a load of bull.

Agreed.  I like to plug my diet libc slides at this point which (I hope)
make a point about this with network programming as an example.  See
http://www.fefe.de/dietlibc/talk.pdf for details.

> Startup costs tend to _dominate_ most applications, except for
> benchmarks, scientific loads and games/multimedia.

> Not surprisingly, those three categories are also the ones where lots of
> optimizer tuning is regularly done. But it's a _small_ subset of the
> general application load.

Exactly.  However, due to these optimizations the trend goes to large
long-running monster applications like Mozilla or GNOME and KDE.  KDE
does not ask me whether I want to run those 20 processes all the time.
It just starts them.  And new processes are forked off a long running
process because the start-up cost has become so large.

> Note that not only do startup costs often dominate the rest, they are
> psychologically very important.

That is not just psychological.  Most developers would do good to visit
a close university or school and see what kind of machines they use
there.  Ever tried installing Debian on a Sparc SLC?  It took a little
over 24 hours.  Compiling a kernel takes over 12 hours on that box IIRC.
But that's not the point.  This hardware was very much usable a few
years ago.  Today it's practically futile to use it.  You are waiting
more than you are working.  On my desktop Athlon, 1.3 million CPU cycles
static start-up cost for running a dynamically linked glibc program may
not look like much.  But my statically linked ls does an ls -rtl of a
directory with 10 files in less time.

> It's sad that gcc relegates "optimize for size" to a second-class
> citizen.  Instead of having a "-Os" (that optimizes for size and doesn't
> work together with other optimizations), it would be better to have a
> "-Olargecode", which explicitly enables "don't care about code size" for
> those (few) applications where it makes sense.

What do you mean with "does not work together with other optimizations"?
I use -Os all the time.  Actually, -Os often produces faster code than
-O2 or -O3!  What other optimizations do you mean?  I don't need much
other optimizer options besides -fomit-frame-pointer and -march=athlon
if you link PIC code and use an Athlon.

And since -funroll-loops and -finline-functions are enabled explicitly
(or the latter with -O3 and larger by people who don't know what they
are doing), I think gcc already does what you want it to do ;)

Felix

  parent reply	other threads:[~2002-01-26 17:33 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-25 15:42 [ACPI] ACPI mentioned on lwn.net/kernel Moore, Robert
2002-01-25 15:50 ` Horst von Brand
2002-01-25 16:02   ` Ryan Cumming
2002-01-25 16:15     ` Andreas Schwab
2002-01-25 20:05       ` Ryan Cumming
2002-01-26  1:00       ` Linus Torvalds
2002-01-26  3:41         ` Jamie Lokier
2002-01-26 16:39           ` Martin Eriksson
2002-01-26 16:47             ` Jeff Garzik
2002-01-26 17:48               ` Jamie Lokier
2002-01-26 18:25                 ` Martin Eriksson
2002-01-26 21:42             ` Linus Torvalds
2002-01-30  9:22               ` Andrey Panin
     [not found]                 ` <Pine.LNX.4.33.0201291412590.18804-100000@coffee.psychology.mcmaster.ca>
2002-01-30  8:00                   ` Andrey Panin
2002-01-26 17:33         ` Felix von Leitner [this message]
2002-01-26 19:40           ` Florian Weimer
2002-01-27 13:56         ` Martin Dalecki
  -- strict thread matches above, loose matches on Subject: below --
2002-01-27 23:58 Dieter Nützel
     [not found] <200201251550.g0PFoIPa002738@tigger.cs.uni-dortmund.de.suse.lists.linux.kernel>
     [not found] ` <200201250802.32508.bodnar42@phalynx.dhs.org.suse.lists.linux.kernel>
     [not found]   ` <jeelkes8y5.fsf@sykes.suse.de.suse.lists.linux.kernel>
     [not found]     ` <a2sv2s$ge3$1@penguin.transmeta.com.suse.lists.linux.kernel>
     [not found]       ` <20020126034106.F5730@kushida.apsleyroad.org.suse.lists.linux.kernel>
     [not found]         ` <012d01c1a687$faa11120$0201a8c0@HOMER.suse.lists.linux.kernel>
2002-01-26 22:43           ` Andi Kleen
     [not found] <fa.juevf8v.1u7ubb8@ifi.uio.no>
     [not found] ` <fa.h3u09pv.1v2k3bm@ifi.uio.no>
2002-01-26  2:12   ` Dan Maas
2002-01-26  3:45     ` Jamie Lokier
2002-01-26  4:33       ` Alexander Viro
2002-01-26  4:38         ` Andrew Pimlott
2002-01-26  4:59           ` Jamie Lokier
2002-01-26  5:11         ` Jamie Lokier
2002-01-25  2:15 Therien, Guy

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=20020126173303.GC11344@fefe.de \
    --to=usenet-20020126@fefe.de \
    --cc=linux-kernel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.