Thursday, May 27, 2010

Re: Flextable memory usage

Thanks Bradley, I'll check that out.

The leak was across browsers but FF and Chrome handled it pretty
gracefully and seems to do a decent job of managing memory usage. The
big issue was with IE6 which kept consuming memory until it crashed.


On May 26, 11:32 pm, Bradley <bljf...@gmail.com> wrote:
> From one of the talks at this year's Google I/O, it is pretty clear
> that widgets are expensive to create and it is much better to keep and
> resume them.  For more information, see the talk titled "Measured in
> milliseconds redux"
>
> Did you notice that the memory leak occurred on just one browser or
> across browsers?
>
> On May 26, 8:40 am, Austen <awconsta...@gmail.com> wrote:
>
>
>
> > To answer my own question, the following seems to be a far better way
> > of doing things. Save creating all those new objects...
>
> > public class Memoryleaktest implements EntryPoint {
>
> >         private FlexTable flexTable = new FlexTable();
> >         private HashMap<Integer, FlexTableRow> rows = new HashMap<Integer,
> > FlexTableRow>();
>
> >         public void onModuleLoad() {
>
> >                 RootPanel.get().add(flexTable);
>
> >                 setupTable();
>
> >                 Timer timer = new Timer() {
> >                         public void run() {
> >                                 updateTable();
> >                         }
> >                 };
>
> >                 timer.scheduleRepeating(10000); // 10 seconds
> >         }
>
> >         private void setupTable() {
> >                 for (Integer i = 0; i < 50; i++) {
> >                         FlexTableRow row = new FlexTableRow();
>
> >                         flexTable.setWidget(i, 0, row.getTitle());
> >                         flexTable.setWidget(i, 1, row.getHtml());
> >                         flexTable.setWidget(i, 2, row.getLabel());
>
> >                         rows.put(i, row);
> >                 }
> >         }
>
> >         private void updateTable() {
> >                 for (Integer i = 0; i < 50; i++) {
> >                         FlexTableRow row = rows.get(i);
>
> >                         row.getTitle().setText("ROW-" + i.toString());
> >                         row.getHtml().setHTML("HTML Test " + i.toString());
> >                         row.getLabel().setText("Label Test " + i.toString());
> >                 }
> >         }
>
> > Any comments/ideas about this approach?
>
> > Thanks
>
> > On May 26, 3:34 pm, Austen <awconsta...@gmail.com> wrote:
>
> > > Hi All,
>
> > > We have a problem with memory usage on all browsers when using a
> > > flextable.
>
> > > The table periodically updates over rpc and if left long enough will
> > > consume all available ram.
>
> > > The following example displays the issue.
>
> > > public class Memoryleaktest implements EntryPoint {
>
> > >         private FlexTable flexTable = new FlexTable();
>
> > >         public void onModuleLoad() {
>
> > >                 RootPanel.get().add(flexTable);
>
> > >                 Timer timer = new Timer() {
> > >                         public void run() {
> > >                                 updateTable();
> > >                         }
> > >                 };
> > >                 timer.scheduleRepeating(10000); // 10 seconds
> > >         }
>
> > >         private void updateTable() {
> > >                 flexTable.clear();
>
> > >                 for (Integer i = 0; i < 50; i++) {
> > >                         flexTable.setWidget(i, 0, new InlineLabel("ROW - " +
> > > i.toString()));
> > >                         flexTable.setWidget(i, 1, new HTML("Test HTML Widget 1-" +
> > > i.toString()));
> > >                         flexTable.setWidget(i, 2, new InlineLabel("Test InlineLabel Widget
> > > 2-" + i.toString()));
> > >                 }
> > >         }
>
> > > }
>
> > > Now I understand that we're probably going about this all wrong but
> > > how should we do it?
>
> > > Thanks in advance

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment