Article View: be.comp.programming
Article #14625Re: Memory leak in Java ?
From: Bart Dammans
Date: Wed, 17 Jan 2001 20:58
Date: Wed, 17 Jan 2001 20:58
61 lines
3055 bytes
3055 bytes
[ Knip memory-probleem ]
> De Garbage Collector kan enkel objecten vernietigen die
> 'klaar zijn voor destructie' (bvb omdat ze out of scope
> gegaan zijn). Als je voor 50.000 records, 50.000 objecten
> cre๏ฟฝert en nergens aangeeft dat je ze niet meer nodig hebt,
> zal de GC ervan uitgaan dat je elk van die objecten nog
> nodig hebt. Voor zover het de JVM aangaat is dit geen leak,
> maar heb je gewoon zoveel memory nodig.
Ik heb een aantal individuele classes die de een na de ander opgeroepen
worden :
Object o = new Object();
Vector apps; // bevat lijst met de uit te voeren classes
boolean ok = true;
while( apps.size() > 0 )
{
i++;
if( i == apps.size() ) i = 0;
o = Class.forName( (String)apps.getElementAt(i) )
ok = o.runApp();
if( !ok ) apps.deleteElementAt( i )
}
In deze loop verwijst het object o dus steeds weer naar een nieuw object,
dus het oude zou toch moeten verwijderd worden ?
Wat gebeurt er trouwens als een niet meer gebruikt object zelf nog naar
objecten in
het geheugen verwijst? Misschien moet ik het probleem in die richting gaan
zoeken.
Ik heb ook al eens finalizers geschreven om naar te gaan of de garbage
collection startte,
en van elk gecreerd object werd de finalizer netjes opgeroepen.
In de task manager van Win NT is trouwens goed te merken dat het systeem
telkens een deel
geheugen reserveert, maar slechts gedeeltelijk weer vrijgeeft.
[Knip tijdsgebrek]
> Welke JVM gebruik je? HotSpot? Zoek eens op de site van SUN
> de JDCTechTips van 22 december 2000 op. Daarin staat een
> artikel met als titel: 'A MEMORY TESTBED APPLICATION'.
> Het kan heel verhelderend zijn dit eens te lezen.
Heb ik gelezen, was heel leerrijk maar het heeft geen licht in mijn
duisternis geschept. :-(
Maar we geven niet op, ik post wel de oplossing wanneer het in orde is...
In elk geval bedankt voor de hulp!
Bart.
Technical Details
Message-ID:
<xHn96.198967$MA1.6599539@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!nntp-relay.ihug.net!ihug.co.nz!skynet.be!newsfeeds.belnet.be!news.belnet.be!afrodite.telenet-ops.be!not-for-mailReferences:
<7q296.192451$MA1.6350755@afrodite.telenet-ops.be> <3A6565EF.E4F262F@rug.ac.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,901bafc4913d27fe X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2001-01-17 12:58:07 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!nntp-relay.ihug.net!ihug.co.nz!skynet.be!newsfeeds.belnet.be!news.belnet.be!afrodite.telenet-ops.be!not-for-mail From: "Bart Dammans" <bart.dammans@pandora.be> Newsgroups: be.comp.programming References: <7q296.192451$MA1.6350755@afrodite.telenet-ops.be> <3A6565EF.E4F262F@rug.ac.be> Subject: Re: Memory leak in Java ? Lines: 65 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2919.6700 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Message-ID: <xHn96.198967$MA1.6599539@afrodite.telenet-ops.be> Date: Wed, 17 Jan 2001 20:58:05 GMT NNTP-Posting-Host: 195.130.157.54 X-Complaints-To: abuse@pandora.be X-Trace: afrodite.telenet-ops.be 979765085 195.130.157.54 (Wed, 17 Jan 2001 21:58:05 MET) NNTP-Posting-Date: Wed, 17 Jan 2001 21:58:05 MET Organization: Telenet Internet