Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Perl: porters

[perl #107866] installhtml is unacceptably slow

 

 

Perl porters RSS feed   Index | Next | Previous | View Threaded


perlbug-followup at perl

Jan 10, 2012, 8:39 AM

Post #1 of 5 (62 views)
Permalink
[perl #107866] installhtml is unacceptably slow

# New Ticket Created by Nicholas Clark
# Please include the string: [perl #107866]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=107866 >


./installhtml is now unacceptably slow.

Whilst the target install.html is marked as "experimental" on Unix*, it
seems that installhtml is part of the regular install target in the Win32
makefiles, so will be common.

On a fast Unix system, installhtml as of perl 5.14.0 was tolerable. (About as
annoying as installman)

On the same system, installman in smoke-me/installhtml (blead is broken)
took 36 minutes.

This may be due to the removal of a caching layer in pod2html.
Whatever the cause, it really needs investigation and mitigation prior
to perl 5.16.0

Nicholas Clark

* and has been I think for a decade. Technical debt - yes, got that.
Few things get finished. At some point it *is* going to be cheaper to
"go bust" as a side effect of starting again.


ikegami at adaelis

Jan 10, 2012, 11:40 AM

Post #2 of 5 (50 views)
Permalink
Re: [perl #107866] installhtml is unacceptably slow [In reply to]

On Tue, Jan 10, 2012 at 11:39 AM, Nicholas Clark
<perlbug-followup [at] perl>wrote:

> # New Ticket Created by Nicholas Clark
> # Please include the string: [perl #107866]
> # in the subject line of all future correspondence about this issue.
> # <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=107866 >
>
>
> ./installhtml is now unacceptably slow.
>
> Whilst the target install.html is marked as "experimental" on Unix*, it
> seems that installhtml is part of the regular install target in the Win32
> makefiles, so will be common.
>

For each dristro installed using ActivePerl's package manager, HTML
documentation is generated. It's already a painfully slow step (especially
if you realise you don't use these pages). I don't know if this
"installhtml" is used to do this, but if so, any slowdown in it will affect
a lot of people.

- Eric


fawaka at gmail

Jan 10, 2012, 12:39 PM

Post #3 of 5 (49 views)
Permalink
Re: [perl #107866] installhtml is unacceptably slow [In reply to]

On Tue, Jan 10, 2012 at 8:40 PM, Eric Brine <ikegami [at] adaelis> wrote:
> For each dristro installed using ActivePerl's package manager, HTML
> documentation is generated. It's already a painfully slow step (especially
> if you realise you don't use these pages). I don't know if this
> "installhtml" is used to do this, but if so, any slowdown in it will affect
> a lot of people.

installhtml (AFAIK) is only used for installing perl's own
documentation, not for modules. AFAIK ActiveState patches their
ExtUtils::MakeMaker to build HTML and install it. Module::Build has
support for it build-in. The main problem with it (as I recall, I
can't find the discussion) are that where it should be installed and
how the links should be generated. It's fairly messy, and
p5p/toolchain doesn't seem to care enough to mandate anything.

Leon


ilmari at ilmari

Feb 7, 2012, 5:44 AM

Post #4 of 5 (39 views)
Permalink
Re: [perl #107866] installhtml is unacceptably slow [In reply to]

"Nicholas Clark via RT" <perlbug-followup [at] perl> writes:

> On Tue Jan 10 12:00:27 2012, nicholas wrote:
>> On Tue Jan 10 08:39:09 2012, nicholas wrote:
>> > ./installhtml is now unacceptably slow.
>>
>> > On a fast Unix system, installhtml as of perl 5.14.0 was tolerable.
>> > (About as
>> > annoying as installman)
>> >
>> > On the same system, installman in smoke-me/installhtml (blead is
>> > broken)
>
> I think that I meant "installhtml" there.
>
>> > took 36 minutes.
>>
>> Different machine, but also modern x86_64 Debian - 30 seconds vs 20
> minutes.
>
> As of commit b09e89a9fc6a3133 it's now about under 90 seconds on the
> machine I tested, down from about 30 minutes, on the machine I tested.

The cache key used for the file seems a bit overly strict:

sub cache_key {
my($dircache, $podpath, $podroot, $recurse) = @_;
return join('!',$dircache,$recurse,@$podpath,$podroot,stat($dircache));
}

stat() incldes the atime, which means that it'll invalidate the cache
just because it hasn't been accessed in a while. Most of the fields
returned by stat() are in fact unrelated to modifications of the
contents: I'd go with just size and mtime.

--
ilmari
"A disappointingly low fraction of the human race is,
at any given time, on fire." - Stig Sandbeck Mathisen


ponguile at gmail

Feb 8, 2012, 12:05 PM

Post #5 of 5 (38 views)
Permalink
Re: [perl #107866] installhtml is unacceptably slow [In reply to]

2012/2/7 Dagfinn Ilmari Mannsåker <ilmari [at] ilmari>

> The cache key used for the file seems a bit overly strict:
>
> sub cache_key {
> my($dircache, $podpath, $podroot, $recurse) = @_;
> return
> join('!',$dircache,$recurse,@$podpath,$podroot,stat($dircache));
> }
>
> stat() incldes the atime, which means that it'll invalidate the cache
> just because it hasn't been accessed in a while. Most of the fields
> returned by stat() are in fact unrelated to modifications of the
> contents: I'd go with just size and mtime.
>

FYI, that is the pretty much the same cache_key function that Tom
Christiansen originally wrote when he originally implemented the cache
feature, which is the one currently used in perl 5.14 (and versions prior).
I don't think this information would change your position, but I wanted to
let you know.

Perhaps a patch with the changes you suggest would be more persuasive to
the porters ;).

Perl porters RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.