Comments (27)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
- GUI: spreadsheet imports ignore selected sheet
- Spreadsheet imports: Add Excel::ValueReader::XLSX backend
- Basedata: use GetFeatureCount in shapefile imports
- GUI does not start under macOS Sonoma HOT 6
- Feature request: Table of diversity indices with index properties HOT 4
- CANAPE: Add super category HOT 3
- GUI: plot polygon overlays with fill colour
- Indices: ensure trees have non-negative branch lengths
- Issues - convert hierarchical labels to lists
- GUI visualisation tabs - add option to export current tree HOT 1
- GUI analysis tabs: move the tree plot controls to the side menu HOT 1
- GUI - plot tree using depth across all tab types HOT 1
- GUI Export interface disables keyboard shortcuts when cancelled HOT 1
- GUI spatial tab - add all project trees to the tree chooser HOT 1
- GUI tree plotting - add options for range weighted and equal branch length HOT 1
- calc_abc: don't change the element lists to hashes
- Cluster calcs per node: clear any previous results before re-running
- Cluster tie breaker calculations - set pairwise mode HOT 1
- GUI: unable to change basedata cellsize when origin is non-zero HOT 1
- Clustering progress: change numeric format for most similar value
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from biodiverse.