From owner-freebsd-java@FreeBSD.ORG Fri Feb 22 05:49:20 2008 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C37ED16A403 for ; Fri, 22 Feb 2008 05:49:20 +0000 (UTC) (envelope-from mika@async.caltech.edu) Received: from async.async.caltech.edu (async.async.caltech.edu [131.215.39.1]) by mx1.freebsd.org (Postfix) with ESMTP id 9368213C4CE for ; Fri, 22 Feb 2008 05:49:20 +0000 (UTC) (envelope-from mika@async.caltech.edu) Received: from camembert.async.caltech.edu (root@camembert.async.caltech.edu [131.215.39.91]) by async.async.caltech.edu (8.11.0/8.11.0) with ESMTP id m1M5nK042788; Thu, 21 Feb 2008 21:49:20 -0800 (PST) (envelope-from mika@camembert.async.caltech.edu) Received: from camembert.async.caltech.edu (k-9@localhost [127.0.0.1]) by camembert.async.caltech.edu (8.13.1/8.13.1) with ESMTP id m1M5nJhd085207; Thu, 21 Feb 2008 21:49:20 -0800 (PST) (envelope-from mika@camembert.async.caltech.edu) Message-Id: <200802220549.m1M5nJhd085207@camembert.async.caltech.edu> To: "Samuel R. Baskinger" In-Reply-To: Your message of "Thu, 21 Feb 2008 22:02:09 EST." <78ED28FACE63744386D68D8A9D1CF5D449F3@MAIL.corp.lumeta.com> Date: Thu, 21 Feb 2008 21:49:19 -0800 From: Mika Nystrom Cc: freebsd-java@freebsd.org Subject: Re: Memory leak in 1.5.0 JVM X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Feb 2008 05:49:20 -0000 No, that does seem to fix it, also. Of course, I have no idea how many times slower System.gc() is than thread.start()... Out-running the garbage collector? I'm not used to Java, but in Modula-3, the garbage collector gets called when you allocate memory, is that not how it works in Java? Hmmm...! I am testing this code because I am having some trouble with a long-running server, which spaws a few new threads every two seconds using Quartz, and I can't for the life of me see why its memory usage is growing over time (it runs out of its 300 megs after about two hours). But it could be something completely different in that program, of course. Mika class Leakq { private static class MyThread extends Thread { public void run() { } } public static void main (String[] args) { for(;;) { Thread t = new MyThread(); t.start(); /*try { t.join(); } catch (Exception ex) { ; }*/ System.gc(); } } } "Samuel R. Baskinger" writes: > >Do you get the same results if you put a System.gc() after your thread spawn? Perhaps you are just out-running the garbage collector. :) > >I tried this on the diablog-jdk 1.5 on amd64 bsd and it runs quite nicely unmodified. > >[sam@bob ~]$ java -version >java version "1.5.0" >Java(TM) 2 Runtime Environment, Standard Edition (build diablo-1.5.0-b01) >Java HotSpot(TM) 64-Bit Server VM (build diablo-1.5.0_07-b01, mixed mode) >[sam@bob ~]$ > >Sam > >-----Original Message----- >From: owner-freebsd-java@freebsd.org on behalf of Mika Nystrom >Sent: Thu 2/21/2008 9:07 PM >To: freebsd-java@freebsd.org >Cc: mika@camembert.async.caltech.edu >Subject: Memory leak in 1.5.0 JVM > >Hello there freebsd-java, > >I am running a binary downloaded 1.5.0 JVM on a FreeBSD 5.5 system: > >(167)rover:~/levinc/memleak>java -version >java version "1.5.0" >Java(TM) 2 Runtime Environment, Standard Edition (build diablo-1.5.0-b01) >Java HotSpot(TM) Client VM (build diablo-1.5.0_07-b01, mixed mode) >(168)rover:~/levinc/memleak>uname -a >FreeBSD rover 5.5-RELEASE FreeBSD 5.5-RELEASE #4: Sat Nov 17 12:13:24 PST 2007 mika@rover:/usr/src/sys/i386/compile/ROVER i386 > >I have found the following program to leak memory on FreeBSD, but not on Windows with same Java 1.6.0, nor on Debian with gij 1.4.2: > >class Leakq { > > private static class MyThread extends Thread { > public void run() > { > > } > } > > public static void main (String[] args) > { > for(;;) { > (new MyThread()).start(); > } > } >} > > Best regards, > Mika Nystrom > mika@alum.mit.edu >_______________________________________________ >freebsd-java@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-java >To unsubscribe, send any mail to "freebsd-java-unsubscribe@freebsd.org"