I'm starting an evaluation of the AdvancedDataGrid and Flex 3
as whole for my project team which has a large financial
application built currently in Flex 2. We were very anxious to
apply the AdvancedDataGrid to provide grouping and summing against
one of our large DataGrids and have found the performance far too
poor to use on anything larger than a trivial dataset. The
GroupingCollection's source is an ArrayCollection loaded from an
HTTPService. It has 3700 records, each with 20 columns.
We've found that we can create the collection with only one
GroupingField, with 3 different SummaryFields being summed and the
GroupingCollection.refresh() executes on average of 9 seconds.
However to really gain buy-in for this feature, we want to
group/sum on two different values and thus two GroupingFields, each
with the same SummaryRow and SummaryFields. In this case
performance drops to an average 123 seconds for
GroupingCollection.refresh(). Completely unusable especially as we
get a Flex timeout in the browser after 15 seconds.
One more bit of information is that in cutting the size of
each record down to 5 columns instead of 20, the refresh() only
averages 8 seconds even with 2 GroupingFields (and still the 3700
rows!). Something is very wrong here as grouping/summing should
really depend upon the number of entries in the ArrayCollection,
NOT the number of fields in each entry in the ArrayCollection.
Finally, this functionality only seems to work with "object"
as the result format for the HTTPService. If I use "e4x" (as all of
the existing services in our application do), wrap the XMLList
returned as an XMLListCollection to use as the GroupingCollection's
source, even with just one GroupingField it averages 98 seconds.
I'm going to start digging into the GroupingCollection
source, but I'm not optimistic. Does anyone have tips or hints as
to anything that can help optimize this process? Or any further
info from Adobe about known performance issues with