This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [GCJ] Performance of GUI applications on embedded systems


ffileppo wrote:

> However I'm experiencing slowness when testing some other GUI sample application (e.g. the test case attached at the end).
> 
> In this particular test case, the application takes a lot of time to startup (compared to the same device, running WinCE and CrEme JVM) and during start up the CPU usage is always at 100%.
> 
> After startup, I'v also noticed that highlighting and/or clicking a certain number of times on buttons cause the application to hang and after that the CPU usage is always 100%.
> 
> I'm still trying to get oprofile working on my target device to see what's going wrong.

Well, it doesn't have to run on the target device.  It was easy for me
to duplicate your previous problem on my desktop machine with gcj and
oprofile.  There's nothing to stop you doing the same.

Andrew.


> Test case:
> 
> import javax.swing.JComponent;
> import javax.swing.JFrame;
> import java.awt.BorderLayout;
> import javax.swing.JButton;
> import javax.swing.JPanel;
> import javax.swing.JTabbedPane;
> 
> public class GUITest {
> 
>   public static void main(String[] args) {
> 
>   JFrame frame = new JFrame();
>   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>   JComponent newContentPane = new TestUI();
>   frame.setTitle("TestUI");
>   newContentPane.setOpaque(true);
>   frame.setContentPane(newContentPane);
>   frame.setBounds(10, 10, 500, 400);
>   frame.setVisible(true);
> 
>   }
> 
>   static class TestUI extends JPanel {
> 
>   long startTime;
>   JPanel createPanel(int start) {
>   JPanel p = new JPanel();
>   p.setLayout(null);
> 
>   for (int i=0; i<100; i++) {
>       JButton ltit = new JButton("Variable "+(i+start)+": ");
>       long val = System.currentTimeMillis() - startTime;
>       JButton lval = new JButton(""+val);
>       ltit.setBounds(5, 10+20*i, 150, 15);
>       lval.setBounds(200, 10+20*i, 150, 15);
>       p.add(ltit);
>       p.add(lval);
>   }
>   return p;
>   }
> 
>   TestUI() {
>   super(new BorderLayout());
>   startTime = System.currentTimeMillis();
>   JTabbedPane p = new JTabbedPane();
> 
>   for (int i=0; i<10; i++) {
>      JPanel page1 = createPanel(i*100+1);
>      p.add("P"+i, page1);
>   }
> 
>   add(p, BorderLayout.CENTER);
>   }
>   }
> 
> }
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]