Thanks for the response, I think you're correct.  And it makes sense
that adding rows dynamically would account for the increase in time as
the row count is higher.
I'm going to run a few tests, and I'll post anything I find to this
post.

On Feb 18, 3:09 am, Alexey_Tsiunchik <[email protected]>
wrote:
> Hello Nick,
>
> Exactly the same issue was in our app. We need to display big lists
> (100 - 500) records, and FlexTable seems not solution for this.
>
> The problem is that FlexTable always checks table bounds (row number,
> column number) and when you put some value in FlexTable it performs
> checking for bounds, moreover it not store the colnum and rownum in
> some variables, but always calculate them dynamically. Moreover it
> dynamocally adds new rows.
> Thats why it becomes slower when number of rows increase.
>
> We had decided to use Grid rather then FlexTable. We can specify Grid
> bounds right after creation, and while we put data in cells in the
> cycle its performance remains the same for different grid size (here I
> mean speed of adding row).
>
> But it also has it's disadvantages. When we need to display another
> data in the same Grid, and this data has different number of rows,
> we should call Grod.resize(int, int). And for
> big grids, this operation is very slow in IE (in our tests resizing
> grid with 200 rows, 5 columns, takes ~13000 ms in IE).
>
> So It seems paging here the only solution.
>
> Tuesday, February 17, 2009, 6:40:51 PM, you wrote:
>
>
>
> > Ok, I did some more testing and I was wrong.  It's not the inserting
> > and removing from lists that are the bottleneck.  I moved the time and
> > log statements around and it had to do with adding to the FlexTable
> > itself.
> > I'm using code like:
> > int row = 1;
> > for (Iterator<MyData> iter = eventList.iterator(); iter.hasNext(); row+
> > +) {
> >   long sysTime = System.currentTimeMillis();
> >   int column = 0;
> >   MyData event = (MyData)iter.next();
> >   table.setText(row, column, event.getNameLast());
> >   column++;
> >   table.setText(row, column, event.getNameFirst());
> >   column++;
> >   table.setText(row, column, event.getJob());
> >   column++;
> >   GWT.log("update time 4: "+(System.currentTimeMillis()-sysTime)+"ms
> > ", null);
> > }
> > Now, you can see I'm logging the time after every row is inserted.
> > The odd thing I'm seeing is that the time per row increase as rows are
> > traversed.  For example, row 1 takes about 30ms but as the rows
> > traverse by row 100 each row is taking about 150ms.  It's a steady
> > increase.
> > Any insights?
>
> --
> Best regards,
>  Alexey_Tsiunchik                            mailto:[email protected]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to