On Sunday 09 May 2010 11:28:18 Joey Hess wrote:
> Raphael Geissert wrote:
> > With the introduction of dh(1), many packages now use it, including
> > lintian for its testsuite. However, it comes with a great performance
> > penalty compared to just "using what is needed."
> 
> A typical rules file that runs only what is needed will call debhelper
> commands 21 to 25 times. dh calls 49. I think you're overstating it
> somewhat.

24 too many, but I agree, "great performance penalty" was too much.

> > Version: 7.4.19
> >
> > While taking a look at what makes debhelper very slow I noticed it calls
> > dpkg- architecture many times per package (66 times for the majority of
> > the packages).
> 
> Heh, you really confused me with this, given that 7.4.19 already reduced
>  the number of calls to dpkg-architecture by sometimes as much as 43x. I
>  had thought about combining buildarch and buildos, but it seemed minor in
>  comparison with that.

Interesting. It was until now that I actually took a look at what it was doing 
behind the scene.

> > -sub dpkg_architecture_value {
> > -   my $var = shift;
> > -   my $value=`dpkg-architecture -q$var` || error("dpkg-architecture
> > failed"); - chomp $value;
> > -   return $value;
> > +{
> > +   my %dpkg_arch_output;
> > +   sub dpkg_architecture_value {
> 
> ...
> 
> > +   }
> >  }
> >
> >  # Returns the build architecture. (Memoized)
> 
> Of course, the extra layer of memoization in buildos and buildarch
> is then unnecessary. (Fixed in git.)

Yep.

> Still, further improvement is possible. Most of the time, buildarch and
> buildos are only used in pkgfile. So, I changed it to glob to find
> possible files, and only use buildos/buildarch to narrow the set if
> there are multiple possibilities. So now the number of dpkg-architecture
> calls has reached 0 for most packages.

Excellent, thanks!

I will see how else debhelper could be made faster.

Cheers,
-- 
Raphael Geissert - Debian Developer
www.debian.org - get.debian.net



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to