Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Data tables vs jQGrid vs Google Visualization performance wise

I need to display a large amount of data (around 50-60K rows). I was searching for javascript library which can accomplish this with following features:

  • Pagination
  • Sorting
  • Grouping (optional)
  • Aggregating (optional)
  • Should work with Firefox and optionally with IE8+
  • Should be open source or very cheap

All the data should be available in javascript, making calls to server for pagination is not an option.

I checked out Data Table, jQGrid, and Google Visualization.

I have tried jQGrid in the past but found out that it is not a good fit for such large amount of data. So my question is can I use any of the other two libraries which can process such large amounts of data with given features? Or are there any other client-side libraries which can serve the purpose?

I have great inclination towards Google Visualization API since I would be able to draw charts as well with the same data. If anyone has tried Visualization with large datasets, can you please report its performance?

like image 244
Juzer Ali Avatar asked Nov 04 '22 02:11

Juzer Ali


1 Answers

Whilst I'm not sure if this can really be considered an answer (nothing empirical here - more just my two cents from experience), I can confirm that I have completed a similar task using the Google vis api, though potentially slightly smaller data set - 30-50k rows.

  • I used controls, filters and aggregations extensively, and will say that at that point things got a little hectic (60/70% CPU as far as Chrome Task manager was concerned, potentially ~1 second delay for certain aggregations). It was still usable however.

  • At no point did I attempt to render all data points on a chart at once. In general, I think that using and aggregating 50/60k rows of data in the background will work (i.e. the js is capable of it), but trying to render all of those on multiple graph(s) will be problematic. If the visuals you present are a more concise aggregation of the data set then this should be ok.

  • Admittedly I mostly tested for Chrome and FF. Gvis thankfully supports lots of browsers, but I personally did not have to consider them all during development.

Given your use case, I feel like the gvis DataTable object managed to handle the large data set and provide a lot of the useful functionality you'd like (grouping, aggregation etc). Whilst I'm not sure if I'd go this way again, I can also confirm that it did not break for me when I attempted to push it to the limits you described :)

like image 158
oli Avatar answered Nov 09 '22 06:11

oli