[csw-maintainers] TeXLive packaging take almost 3 days

Peter FELECAN pfelecan at opencsw.org
Thu Nov 29 22:30:49 CET 2012


Dagobert Michelsen <dam at opencsw.org> writes:

> Hi Peter,
>
> Am 19.11.2012 um 18:48 schrieb Peter FELECAN <pfelecan at opencsw.org>:
>> Dagobert Michelsen <dam at opencsw.org> writes:
>>> The numbers are… impressive. I have never optimized pathfilter as it usually
>>> runs a second for average packages, so it probably leaves much room. Please use
>>>  DEBUG_PACKAGING=1 mgar repackage
>>> to get the actual pathfilter invocation and grab the file it is applied to so I can
>>> rerun and profile it. I can then happily try to speed it up.
>> 
>> The script containing the invocation of the 2 utilities, as extracted
>> from the packaging log, can be found on the build farm at
>> ~pfelecan/opencsw/texlive/trunk/4o; beware that the utilities are a
>> little bit hacked in my instance of .buildsys/v2…
>
> This is now roughly 40 times faster by precompiling the regexps:
>   http://sourceforge.net/apps/trac/gar/changeset/19753
>
> There is probably more to gain, but this may help on the first stage.
> cswproto depends on pkgproto which already takes some time and uses
> precompiled regexps, but it is only called once during packaging
> where pathfilter is called for every package.
>
> Please drop me a note how it goes, I will also take more looks on the code.

Thank you.

I confirm a 50 times optimization for pathfilter.

As for cswproto, still a hog, here is some additional profiling data:

Total Elapsed Time = 1184.726 Seconds
  User+System Time = 1060.576 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 98.1   1040. 1040.6 112180   0.0093 0.0093  main::is_common
 0.09   0.980  0.980 112164   0.0000 0.0000  main::exclude
 0.01   0.069  0.236      7   0.0099 0.0337  main::BEGIN

As you can see the time is spent is determining if the components are
part of the common package. I understood that in the future we get rid
of that but in the mean time we need to find a quicker way to determine
that relation. With the current optimization we probably can package
TeXLive in 1.5 days which is still too much...
-- 
Peter


More information about the maintainers mailing list