libtool-patches
[Top][All Lists]
Advanced

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

Re: libtool performance status


From: Ralf Wildenhues
Subject: Re: libtool performance status
Date: Tue, 22 Apr 2008 07:29:06 +0200
User-agent: Mutt/1.5.17+20080114 (2008-01-14)

* Bob Friesenhahn wrote on Mon, Apr 21, 2008 at 05:14:00PM CEST:
> On Mon, 21 Apr 2008, Ralf Wildenhues wrote:
>>
>> If they were lower in between, and since increased, there must have been
>> at least one regression along the way.  Can you use git bisect to
>> identify one?
>
> Remember that you fixed an expr-related bug which was impacting FreeBSD 
> and causing an error message to be displayed rather than code being 
> executed.  Perhaps this fix adds a small cost?

Unlikely.  It removes a fork&exec and adds a pattern match and ${foo#bar}
substitution.  Both of the latter should be pretty quick compared with
the former.

To put some sort of proof to my claims, here's what I get building GM
unoptimized (CFLAGS=-g) on GNU/Linux with Libtool 2.2.2. and current
master (all timings best of three):

2.2.2:
110.31user 30.73system 2:21.01elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+5714405minor)pagefaults 0swaps

master:
107.42user 28.04system 2:16.51elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+5069147minor)pagefaults 0swaps

Looks like a small but definite improvement to me.  :-)

Also note that there is only 1.05s of unaccounted-for elapsed time, also
the lower page fault count is a pretty good indicator that things have
not gotten worse.

To break things down further, I recorded (with make -n) most libtool
calls, split them into --mode=compile and --mode=link, put them in a
shell script, and added '-n --silent' so we only measure libtool script
overhead.

compile mode 2.2.2:
5.72user 2.30system 0:07.93elapsed 101%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+537316minor)pagefaults 0swaps

compile mode master:
4.95user 1.21system 0:06.14elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+292254minor)pagefaults 0swaps


link mode 2.2.2:
12.11user 7.92system 0:19.74elapsed 101%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+1662149minor)pagefaults 0swaps

link mode master:
11.91user 7.10system 0:18.94elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+1450595minor)pagefaults 0swaps

Again not much, but consistently better (and much better than 1.5.x).

> Since only 54% of the time is attributed to user+system time the rest of 
> the time must be spent doing things like moving the disk drive heads, 
> waiting for I/O, servicing interrupts, or running other programs (none in 
> this case).

Hmm.  That may or may not be libtool's fault, though; linking in itself
isn't so cheap, I/O-wise.

Can you please check whether
  libtool --tag=CXX --config

is identical for each of the builds you timed?

Thanks
Ralf




reply via email to

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