Opened 4 years ago

Closed 3 years ago

#1080 closed defect (fixed)

Memory leak when switching tabs between projects

Reported by: Corion Owned by: alias
Priority: major Milestone:
Component: editor Version: 0.76
Keywords: usability Cc:

Description

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.

Version information:

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
E())"
Wx Version=(0.98) wxWidgets 2.8.10 unicode=(1)

Change History (3)

comment:1 Changed 4 years ago by waxhead

  • Owner set to alias
  • Status changed from new to assigned

I think the work Adam has done with the directory tree might have resovled this?

Adam, can you comment and close if appropriate.

comment:2 Changed 3 years ago by zenogantner

  • Keywords usability added

Generally, switching between files with an open project browser is much slower than without.

comment:3 Changed 3 years ago by adamk

  • Resolution set to fixed
  • Status changed from assigned to closed

I fixed this a while back

Note: See TracTickets for help on using tickets.