On Tue, 2008-12-30 at 12:13 -0800, Russ Allbery wrote:
> Russ Allbery <r...@debian.org> writes:
> 
> > I don't think that fully explains it, though, since when $info is
> > reassigned when the next package is checked, the old $info should be
> > garbage-collected.  I'll keep looking.
> 
> I think I found it.  checks/menu-format was using a global %file_index
> hash that stored all files in the package, but it was a lexical global and
> wasn't cleared with multiple calls to run, so I think it was accumulating
> entries for every file in Debian.
[and some more]
> The Contents file for all of Debian is 200MB.  Given that by the end of
> the run we'd have two copies of that in memory and Perl isn't particularly
> good about memory allocation overhead, I suspect that explains the bloat.

Ugh. :-/

>From a quick look, checks/menus also has a global $info which I
introduced when moving the script to Lintian::Collect (it's called from
a subroutine outside of run(), although I should just have passed
$info->index->{$file} in instead). That shouldn't be a problem though,
as it'll be reinitialised at the start of each invocation of run().

> I'm testing and committing my patches now.

Thanks, for looking at and (hopefully) fixing this.

Adam


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

Reply via email to