I observed considerably worse performance of Matlab plot functions with versions R2014b and R2015a compared to earlier versions. Some of my interactive plots became almost unusable. For example, for one of my plots with 6 subplots and about 1000 data points each, the update of the plot is rather fast (<100ms) but then it takes about 30s until the plot is responsive and the command line is free. Using tic/toc and profiler I was not able to figure out where Matlab spends the time. It seems to be a problem related to the new graphics engine introduced in R2014b.
A small example (extreme case with many data points) shows how much slower plotting performs with R2014b/R2015a compared to R2013b in the case of many data points:
xx=randn( 1e7,1); figure(1) tic; plot( xx, 'x'); drawnow; toc
System 1:
- CPU: Intel Core i7-3930K
- GPU: Nvidia GeForce GTX580
- RAM: 64GB
- OS: Windows 7 Enterprise 64bit
- Matlab 64bit
- All drivers are up to date.
R2013b: Elapsed time is 2.207543 seconds. R2014b: Elapsed time is 37.758890 seconds. R2015a: Elapsed time is 35.490439 seconds.
System 2:
- CPU: Intel Core i5-2500K
- GPU: Intel HD Graphics 3000
- RAM: 32GB
- OS: Windows 7 Enterprise 64bit
- Matlab 64bit
- All drivers are up to date.
R2013b: Elapsed time is 2.402014 seconds. R2014b: Elapsed time is 62.260723 seconds.
For the R2014b/R2015a version there is in addition this function execution time a time interval of several tens of seconds after plotting until Matlab is responsive. This time interval is negligible for the R2013b version.
Furthermore, I observed huge differences in memory consumption of Matlab. After executing the commands above, the Windows task manger shows following memory consumption values. Maybe this is related to the slow plotting performance.
R2013b: ~600 MB R2014b: ~12 GB R2015a: ~11 GB
Does anyone observe a similar behavior and know how to solve this problem?
Best Answer