Hi Kun,
5.6M data values is a lot to render, and even if you give each data value a single pixel, it will be difficult to do a fair job representing all of it. So I would suggest you might want to sample or summarize your data before sending it out from the server. Then, if more detail is desired, allow the user to select a range to drill down into, fetch more data for the smaller range, and repeat.
However, you might be seeing delays in merely sending all the data to the browser. But ignoring that, there are still several places within the code that will synchronously loop through all that data before giving control to the next process (via the allowAsync option). Allowing more asynchrony in the code will require a substantial refactoring that we are not likely to get to soon.
I hope this helps you find a way to visualize your data efficiently and effectively.