Garbage collector: Out of memory (when running AWT/SWING code on arm-linux)

Andrew Haley aph@redhat.com
Fri Jun 6 14:10:00 GMT 2008


ffileppo wrote:
>> Hi guys,
>>
>> I'm getting the following error:
>>
>> GC Warning: Out of Memory! Returning NIL!
>>
>> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)
>>
>> For example this code:
>>
>> import javax.swing.*;
>>
>> public class SimpleFrame {
>>   public static void main(String args[]) {
>>     System.out.println("Check 1");
>>     JFrame f = new JFrame("Simple Frame");
>>     System.out.println("Check 2");
>>     f.setSize(200,100);
>>     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>>     f.setVisible(true);
>>   }
>> }
>>
>> gives out of memory error after printing "Check 1".
>> Trying with some other code I can see that the first AWT/SWING call causes this error.
>>
>> Any idea to fix / debug this problem?
>>
>> I've read somewhere to look at stack trace and GC log but I don't know where to get these info.
>>
>> I'm using gcc 4.3.0, compiled for arm-linux-gnueabi with GTK AWT peer support.
>>
>> When I try to run AWT/SWING code on my embedded box I have like 110Mb of free ram (with Xorg and matchbox or xfce running).
>>
>> Thank you,
>>
>> Francesco
> 
> 
> Hi again,
> 
> I've tried defining GC_PRINT_STATS and GC_DUMP_REGULARLY to get some debug info.
> 
> However I can't understand what's going wrong (please see my log at end).
> 
> Any advice? I'm really running out of ideas...
> 
> Could anyone confirm the faesibility of running a GTK AWT peer application on an embedded system with about 100Mb of free ram?
> 
> Here is my log:

Look at this:

Collection 4 finished ---> heapsize = 64262144 bytes

That's huge, and it's probably real.

I'm trying to run your test example on my ARM GNU/Linux box but it won't let me
log in.  I suspect it's checking its disks.  Later I'll tell you how I get on.

Andrew.



More information about the Java mailing list