Git Product home page Git Product logo

Comments (27)

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
There is no memory leak (at least not as identified using Devel::Cycle).  It is 
more
to do with the way Perl manages memory and can be reduced by more judicious use 
of
data structures.  This process is ongoing.  

Original comment by shawnlaffan on 18 Oct 2009 at 12:06

  • Changed state: Started
  • Added labels: Priority-Low
  • Removed labels: Priority-Medium

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
Actually, there is a memory leak but it is not due to a reference cycle in the
objects.  It seems to occur after a data set is loaded from a bds file and a
randomisation is added, so something is keeping a reference outside the 
object's scope.

More hunting is needed.

Original comment by shawnlaffan on 25 Apr 2010 at 7:25

  • Added labels: Priority-Medium
  • Removed labels: Priority-Low

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
Need to try Test::Weaken.
http://search.cpan.org/~jkegl/Test-Weaken-3.004000/lib/Test/Weaken.pm

Original comment by shawnlaffan on 20 Jun 2010 at 6:20

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
A workaround has been implemented for use until (and even after) we solve this 
issue.
See http://code.google.com/p/biodiverse/wiki/LoadAndRandomise

Original comment by shawnlaffan on 7 Jul 2010 at 3:20

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r949.

More leak hunting, but have found nothing.

Original comment by shawnlaffan on 12 Jun 2012 at 11:27

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1112.

Switching to Class::Inspector from Devel::Symdump.  
Might make some difference, but need to benchmark.  
Next is to test cloning as the source.  

Original comment by shawnlaffan on 28 Aug 2012 at 7:10

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1113.

Add script to run leaktraces.

Original comment by shawnlaffan on 28 Aug 2012 at 7:11

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1148.

Some musings.

Original comment by shawnlaffan on 22 Sep 2012 at 11:34

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
Looks like this issue does not manifest under Strawberry Perl 5.16 (either of 
x32 and x64).  

Either perl has fixed itself, or something in the dependency chain was the 
cause and has been fixed (or both).

Leaving open for now, as we also need to test on Linux.  

Original comment by shawnlaffan on 10 Dec 2012 at 5:18

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
Possibly it was fixed by this:  
http://repo.or.cz/w/Text-CSV_XS.git/commit/0cee5f2cbe2e83a

Original comment by shawnlaffan on 24 Dec 2012 at 9:19

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
No, it is still there.  
Strawberry 5.16.3 x64.

Original comment by shawnlaffan on 22 Jun 2013 at 4:42

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1653.

Add config parameter to control the progress dialogue.  
After turning it off it looks like the leakage is coming from either 
Biodiverse::GUI::ProgressDialog or from Gtk.  This is because there is no 
increased use of memory with no progress dialogs being shown.  

Original comment by shawnlaffan on 15 Jul 2013 at 3:20

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
Looks like Gtk are on it.  

https://bugzilla.gnome.org/show_bug.cgi?id=685959 (marked as fixed) and 
https://bugzilla.gnome.org/show_bug.cgi?id=671538

Original comment by shawnlaffan on 15 Jul 2013 at 3:28

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1659.

Make sure the config parameter is boolean.  

Original comment by shawnlaffan on 15 Jul 2013 at 5:15

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1662.

Store the text and progress widgets directly.  
It doesn't fix the issue, but should at least speed things up a touch since we 
don't repeatedly call dlgxml->get_widget.

Original comment by shawnlaffan on 15 Jul 2013 at 9:00

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1663.

Add test script to hunt leaks.  
Memory usage increases as the number of progress dialogs increases.
It is stable if only one progress dialog is used, no matter for how long.  
The next approach is to not use the Glade file progress dialog, and generate 
new ones directly.  There is much leakage under the current approach.  

Original comment by shawnlaffan on 15 Jul 2013 at 10:21

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
It seems a reasonable workaround would be to reuse the same dialog and
show/hide it. (Cache the Gtk2::GladeXML instance in a global in new and hide 
the dialog
instead of destroying it in destroy).
Under Linux the dialog seems to grow vertically slightly each time, but
looks fine on Windows.
In both cases the memory use is steady.

Original comment by [email protected] on 15 Jul 2013 at 11:51

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
The issue with hiding is that we often need more than one progress dialog at a 
time.  Updating a single dialog will hide the higher level progress.  

Keeping a single dialog overall is a good idea, though, and is already logged 
as issue #295 .  In this approach we have a single window and add/remove 
sub-widgets as needed.  The dialog can be hidden when there are no more widgets 
to update.  

WRT recreating each time for now, the widget is not that complex to create - it 
is just a vbox in which one packs text and progress bar widgets.  

Original comment by shawnlaffan on 15 Jul 2013 at 10:40

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1666.

Ahab almost has his whale. 
Replace the GladeXML progress dialog with one rolled by hand.  
Memory usage no longer increases anywhere near the same rate as before.
A remaining issue is that closing the dialog does not cancel the operation.  
This needs to be looked into.  

Original comment by shawnlaffan on 16 Jul 2013 at 12:19

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1667.

Add signal handler so we destroy the progress widgets when the window is 
closed.  This then triggers the analysis cancellation.

Original comment by shawnlaffan on 16 Jul 2013 at 12:47

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1669.

Merge changes into the trunk. 

Original comment by shawnlaffan on 16 Jul 2013 at 1:16

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1670.

Remove some debugging code that causes croakage.

Original comment by shawnlaffan on 16 Jul 2013 at 1:21

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1671.

Merge latest change into trunk.  

Original comment by shawnlaffan on 16 Jul 2013 at 1:22

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
Add milestone for 0.18

Original comment by shawnlaffan on 16 Jul 2013 at 10:21

  • Added labels: Milestone-Release0.18
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
At long last this issue can be marked as fixed.

Original comment by shawnlaffan on 18 Jul 2013 at 3:47

  • Changed state: Fixed
  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1688.

Add a test file (even though the issue is closed).  

Original comment by shawnlaffan on 18 Jul 2013 at 4:03

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 24, 2024
This issue was updated by revision r1769.

Delete branch associated with this issue.  

Original comment by shawnlaffan on 19 Aug 2013 at 10:30

  • Added labels: ****
  • Removed labels: ****

from biodiverse.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.