[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[ptp-dev] Fwd: [eclipse-dev] Resource leaks
|
Here is some good advice on avoiding memory leaks. I suggest anyone
writing UI code at least try running the sleak tool.
Greg
Begin forwarded message:
From: John Arthorne <John_Arthorne@xxxxxxxxxx>
Date: February 26, 2007 9:11:19 AM MST
To: eclipse-dev@xxxxxxxxxxx
Subject: [eclipse-dev] Resource leaks
Reply-To: "General development mailing list of the Eclipse
project." <eclipse-dev@xxxxxxxxxxx>
Several users have reported needing to shutdown Eclipse once every
day or so because they run out of resource handles. After a bit of
investigation, there seems to be two general sources of the problem:
1) There are lots of resource leaks. After spending an hour or so
with Sleak I easily found several leaks (175393, 175525, 175526,
175534, 175536). I suggest teams with UI code spend a bit of time
with the Sleak tool to root out the obvious leaks. In a backwards
compatibility triumph, the original sleak tool written for Eclipse
2.1 works just fine in the latest 3.3 stream builds. Download and
instructions are here:
http://www.eclipse.org/swt/tools.php
2) We rely heavily on permanent global resource caches. Caching
images and colors in permanent caches is easy and convenient.
However, when this is done with a large number of images, it can
easily result in large Eclipse-based applications running out of
handles. I suggest using permanent caches only for bounded sets of
images that are used very frequently. Larger sets of images, and
especially images derived programmatically such as decorators,
should really use limited lifetime caches such as the JFace
LocalResourceManager. Note that resources disposed in your
plugin's shutdown method, or in a disposeExec on the Display, are
effectively permanent resources. If anyone else has suggestions or
tips on how to manage resources, please chime in.
Problems like this are a death by a thousand cuts. Each plug-in
may only have one or two tiny leaks, and a handful of global images
and colors, so it doesn't feel like a pressing problem. Scale this
up to hundreds or thousands of plug-ins, and you have a stop ship
defect that can make Eclipse-based applications unusable.
_______________________________________________
eclipse-dev mailing list
eclipse-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipse-dev