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

David Daney <[email protected]>
Newsgroups gmane.comp.gcc.java.devel
Message-ID <[email protected]>
Andrew Haley wrote:
> 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.

May I point you to:

http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcj/Invoking-gc_002danalyze.html

We wrote it specifically to shed light on this type of problem.

David Daney
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.