Ticket #1080 (closed defect: fixed)
Memory leak when switching tabs between projects
|Reported by:||Corion||Owned by:||alias|
I experience a bad (20MB to 80MB) memory leak and a bad (5s-10s) delay when switching tabs for documents that live in two separate
projects. This is on Padre 0.76 (from CPAN), Strawberry 5.12.1. See the versions at the end.
How to reproduce:
1) Open files from the first project (AppA::ModuleA).
2) Open files from the second project (AppB::ModuleB).
3) Note memory usage of Padre
4) Activate tab with file from the first project (say AppA/ModuleA.pm)
5) Activate tab with file from the second project (say AppB/ModuleB.pm)
6) Wait about 5s, watch memory usage grow by 20MB, while Padre seems to do something. One CPU reaches 100%, while the other CPUs remain idle. No updating of the editor happens during this time.
7) Activate tab with file from the first project (say AppA/ModuleA.pm).
8) Wait about 10s, watch memory usage grow by 80MB, while Padre seems to do something. One CPU reaches 100%, while the other CPUs remain idle. No updating of the editor happens during this time.
Switching between the projects reproducibly takes the same amount of time, so it may or may not be related to something the projects contain. Both projects contain a .git/ directory.
Switching between files of the same project is almost instantaneous.
The highlighter is Scintilla.
C> perl -v
This is perl 5, version 12, subversion 1 (v5.12.1) built for MSWin32-x86-multi-thread
Copyright 1987-2010, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
C> perl -MWx -e"printf(qq(Wx Version=($Wx::VERSION) %s unicode=(%s)\n), Wx::wxVERSION_STRING(), Wx::wxUNICOD
Wx Version=(0.98) wxWidgets 2.8.10 unicode=(1)