I have a performance problem with a stacked BarChart. I want to display 1000 datapoints on one BarSeries. The data is generated by a server and the BarChart can be updated by a user. Each time the view is updated it takes appr. 20-40sec until the data is displayed in the browser.
I made some performance analysis by trace outputs and by using the flex profiler. The result is that it takes 1sec for retrieving the data from the server, 1sec for preparing the data for the BarChart and the rest of the time is used for rendering. So the most of the time is spend out of my scope. During the rendering the cpu usage is at 100%. With the debugger I found out that LayoutManager.doPhasedInstantiation() is consuming most of the time. In the profiler I sometimes see that [render] and [pre-render] need 12-20sec each, but sometimes the profiler shows 5sec as a cumulative time for all methods together. In this case I don't know where the rest of the time is spend. I also see that the browser (I have tested IE and Firefox) need appr. 100MB memory each time I update the view, but FlexProfiler is constantly showing me only 40MB. So after updating 5times the browser is at 600MB memory usage. Does that mean that the browser is the problem for the performance problem? I always clear all my objects before the data is updated, which corresponds to the memory usage which is shown in the profiler.
Here are my questions:
- Does anybody know, how I can increase performance?
- Is the browser or the flex application the reason for the problem?
- Is there a way to determine, how far the BarChart has rendered at a current point of time (displaying a progress bar would also be an option)?
- How can I prevent the browser from using so much memory?