🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #14641

Re: Memory leak in Java ?

#14641
From: Bruno De Wolf
Date: Fri, 19 Jan 2001 14:47
47 lines
2443 bytes

Bart Dammans wrote:

> [  Knip memory-probleem ]
>
> 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 ?

Stel: je hebt in je lijst 5 objecten (a,b,c,d,e) en i=2
Je voert dan b.runApp uit en apps.deleteElement(2)
Je lijst is nu dacht ik: (a,c,d,e)
Vervolgens i=3 (i=i+1) (je voelt hem al komen):
d.runApp

c.runApp wordt nooit uitgevoerd en blijft in je lijst staan!!


>
>   Wat gebeurt er trouwens als een niet meer gebruikt object zelf nog naar
> objecten in
>   het geheugen verwijst?

Mag normaal geen probleem zijn. Ieder object heeft een ref-count (=aantal
objecten dat naar het object refereer). Het geheugen mag vrijgegeven worden als
ref-count = 0. Stel dat a verwijst naar b en je vernietigd b: op dat moment weet
JVM dat ref-count(b) met 1 mag verminderd worden.

Bruno
Technical Details
Message-ID: <3A68536A.C1BE2D4@bpt-c.com>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!nntp-relay.ihug.net!ihug.co.nz!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!skynet.be!poster!not-for-mail
References: <7q296.192451$MA1.6350755@afrodite.telenet-ops.be> <3A6565EF.E4F262F@rug.ac.be> <xHn96.198967$MA1.6599539@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,901bafc4913d27fe
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2001-01-19 06:47:28 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!nntp-relay.ihug.net!ihug.co.nz!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!skynet.be!poster!not-for-mail
From: Bruno De Wolf <bruno.de.wolf@bpt-c.com>
Newsgroups: be.comp.programming
Subject: Re: Memory leak in Java ?
Date: Fri, 19 Jan 2001 15:47:07 +0100
Organization: Belgacom Skynet SA/NV
Lines: 49
Message-ID: <3A68536A.C1BE2D4@bpt-c.com>
References: <7q296.192451$MA1.6350755@afrodite.telenet-ops.be> <3A6565EF.E4F262F@rug.ac.be> <xHn96.198967$MA1.6599539@afrodite.telenet-ops.be>
NNTP-Posting-Host: viap097.atea.be
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: news1.skynet.be 979915647 25779 194.78.143.97 (19 Jan 2001 14:47:27 GMT)
X-Complaints-To: abuse@skynet.be
NNTP-Posting-Date: 19 Jan 2001 14:47:27 GMT
X-Mailer: Mozilla 4.73 [en] (WinNT; U)
X-Accept-Language: en