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