Welcome to MSDN Blogs Sign in | Join | Help

Microsoft Excel 2010

The official blog of the Microsoft Excel product team
Improvements to Chart Performance

Thanks to Ben Rampson for putting this post together.

In today’s article I will outline some of the significant new chart improvements that impact performance. In Office 2007 the graphics engine used by Office Charts was replaced with one that could support more complex rendering. A downside of this change was slower performance in certain scenarios relative to Office 2003. For example, supporting anti-aliasing in Office 2007 allows the chart to render smooth lines; however, the computation for smoothing takes multiple rendering passes which take additional time. One of the top priorities for Office 2010 was increasing chart performance. The examples below detail some of this work.

One of the primary areas of focus was improving the rendering speed of charts with large data sets. Many customers need to plot very large amounts of data to spot trends. The image below shows a sample scatter chart that has six series, each with ten thousand points. I sampled some timing measurements on this chart in multiple versions of Office. In Office 2003 this chart took 1.3 seconds to render. In Office 2007 the render was 14.7x slower than Office 2003, taking 19 seconds. In Office 2010 the resize action takes 1.8 seconds, 1.3x slower than Office 2003 but 10.5x faster than Office 2007.

image

In many cases Office 2010 not only provides fast performance, it addresses many blocking customer issues with Office 2007. I was recently working with a customer submitted file that plotted 120 thousand data points across four series of line and scatter chart types. In Office 2003 the chart took 2.7 seconds to render. In Office 2007 the chart wouldn’t render after trying for 5 minutes. In Office 2010 the chart was drawn in 4.7 seconds.

A second performance area the charting team has focused on improving is text rendering.  Almost all charts have some form of text present.  This text takes calculation time for layout, often requiring multiple layout passes to determine the best appearance for the chart.  For example, determining the appropriate text skip or rotation of an axis label to maximize legibility can be a costly operation as multiple possible arrangements need to be tried to determine the one that works best.  One of the enhancements to Office 2010 was to improve the speed of overall text rendering and layout. Based on performance profiles in our testing lab, the improvements made to text rendering are currently knocking 10% to 20% off the total chart rendering time for the average chart.

In Office 2010 you will also notice that loading and saving files with charts is significantly faster than Office 2007. The charting team and the Excel team have both worked to tune the code to boost performance on load and save across the different Excel file formats.  The chart below shows the results of some of the load and save tests run against a typical dashboard file with many charts. The load tests in Office 2010 are currently running 15-40% faster than Office 2007 while the save test are running 30-70% faster than Office 2007.

image

The charting team has also worked on increasing general chart performance for common chart and document interactions.  Part of this work has been to reduce the unnecessary re-renders of a chart.  When scrolling through a document with a chart or changing the selected element of a chart Office 2007 often recomputed and redrew the entire chart.  Office 2010 eliminates these unnecessary calculations and instead reuses a cached image of the chart when possible.  This change helps produce smoother document scrolling and near instantaneous chart element selection.  The performance results of changing to a chart sheet on a customer file are shown in the chart below. The key aspect to note is that while Office 2010 is already similar in performance to Office 2003 on first render, subsequent renders of the chart are near instantaneous in Office 2010 when the chart has not changed.

image

In addition to the fixes mentioned above, the charting team has made many other improvements that impact performance. Performance remains a high priority for Office 2010 and we will continue to make further enhancements prior to release.

Posted: Thursday, August 20, 2009 8:26 PM by Sam Rad

Comments

Powerpoint User said:

This is great!  However, what about all the crashes.  I'm surprised with all the updates, Office 2007 PowerPoint crashes when making adjustments to charts.  

I use PowerPoint quite heavily but always save my files every 30 seconds when working on charts.

# August 20, 2009 11:39 PM

Steve Kapcoe said:

Is there a way to get a chart to automatically update so that only the last ten days of a table is displayed?  

# August 21, 2009 1:50 AM

Andi said:

Good news! Thanks for the update.

One thing that I do notice is that Excel 2007 currently produces nice smooth pie charts - however when you print them, the resolution is very poor. Fuzzy! I've tried fiddling with res settings to no avail... is this something that will improve in 2010?

# August 21, 2009 5:27 AM

Jon Peltier said:

This addresses a major reason many of us have not migrated to Excel 2007. However, charting is still no fun because of the awkward dialogs.

The dialogs split common related tasks over multiple tabs. For example, formatting line and markers of a series was one tab in 2003, up to six in 2007.

Also the 2007 UI also removes some tasks from the objects they affect. For example, in 2003 you could add error bars and data labels right from the format series dialog. Data Labels have been added to the series context menu in 2007, but error bars require a trip to the ribbon, and I've found that most users are completely flummoxed by the resulting error bars.

# August 21, 2009 9:28 AM

Jon Peltier said:

Steve -

That's a dynamic chart, which works the same in 2007 as in earlier versions. Your request is similar to this example:

<a href="http://peltiertech.com/Excel/Charts/DynamicLast12.html" title="Chart the Last 12 Months | PTS Blog">Chart the Last 12 Months</a>

# August 21, 2009 9:30 AM

Colin Banfield said:

Jon, I was about to direct him your link, but your message showed up before I found it!

Since the Excel 2007 beta I'm been suggesting that Last N (years, months, days) be added to the filter list based on the system date. Alas, it seems that my clients are the only folks in the world that use such a filter more than the other 32 in the current list, put together.

The only other system date filter used regularly is year to date, but the current implementation is useless because it always includes the current month.

Sorry 'bout the digression off the main topic.

# August 21, 2009 11:10 AM

Robin (MSFT) said:

PowerPoint User - are you currently using Office 2007 SP2?  There is a bug in SP2 that would cause this type of behavior and it has been fixed in a patch.

# August 21, 2009 5:45 PM

Doug Jenkins said:

I hope the performance improvement also applies to complex shapes drawn on the spreadsheet.  In the current version redraw times seems to increase exponentially as the number of shapes increase, and it becomes unusable if there are more than a few hundred shapes.

# August 21, 2009 8:41 PM

Michael said:

@Robin (MSFT)

Can you please post the kb-article? We also have a performance problem with office 2007 SP2 when opening charts (in PPT) with a huge amount of data. Each slide takes 20-30 sec. to render when opening (instead of 1-5 sec in SP1)

Kind regards,

Michael

# August 31, 2009 8:45 AM

Robin (MSFT) said:

Hi Michael,

I am looking into where this kb article is but the fix is for the problem where PPT is crashing when interacting with chart after SP2.  This particular kb article I was referring to is not targeted at performance.

Thanks,

Robin

# September 2, 2009 4:42 PM

Michael said:

Thx for the reply Robin, Microsoft Support pointed me to:

http://support.microsoft.com/kb/974491/

http://support.microsoft.com/kb/973406/

406 didn't helped and 491 has no downloadable hotfix (yet).

Maybe you got a different kb article (which may help).

Thanks,

Michael

# September 3, 2009 2:52 AM

Menem said:

JC: you've asked me to elaborate on my comments to the "Excel 2010 – The 10,000 ft. View" post; I sent the answer but it failed to due to a connection issue.

Anyway, my comments on chart defaults are:

. Gridlines could be more subdued.

. Axis lines are too strong - they also could be a ligher grey.

. Legends take up a lot of space in charts. That space could be saved by defaulting to attaching a data label to the last datapoint of each series with the series name being its font-color the same that the series fill colour.

. If this is too big of a change, then the font-color of each entry in the legends box should match the fill colour of the series it represents.

. Axis text should NEVER appear diagonally - if it doesn't fit, then default to vertical alignment.

. Datapoint labels' font should match the series colour, so that using labels on two series doesn't result in unreadable text.

. A title should be displayed by default.

On charting in general:

. To align the label to the right of the datapoint when you have many charts with many series each is really cumbersome. So you should allow to apply the same options to all series data labels.

# September 4, 2009 12:48 AM

Menem said:

. The select data dialog for charts (chart tools / design / select data) could do away with the sub-forms that shows up when select a series and clicking Edit. The select data dialog hast a simple list showing all the series, but it is already big enough that in a 22" it clouds the chart. To see the chart you have to click on Edit and then, in the subdialog that appears, click on the button to the right of the field to shrink the Edit data subdialog. The select data main dialog could be improved enlarging it a bit and replacing said list with a table where each cell is a select range control (including the button to the right that shrinks the dialog) with these columns: {series name;x values;y values; custom data labels; + error (for error bars);- error}. That way you could save lots of innecesary clicks. Or maybe employ a taskpane like the one used for pivottables.

# September 4, 2009 1:08 AM

Menem said:

. In the first tab of the chart tools ribbon gruop there's a select data big button that gives you the select data dialog showing all the series and the axis. For all kinds of charts, but specially for scatter charts, when selecting on a series and clicking on the edit button a dialog shows up with just two fields: Series name and series values (series x and series y values in scatter plots). There should be another field with a select range control that allows creating custom data labels range right. Currently you can do it using addins. Also, error bar creation could be improved if in said subdialog you show a checkbox with the text "Error bars?" that when selected enables two more range select controls for the horizontal and vertical error bars. Otherwise,  adding errorbars requires AT LEAST 7 additional steps (count them) to reach to the appropiate range select control for the first errorbars data series.

. Chart, replace "column" main button with a templates dropdown. Perhaps as a ribbon customization option?

# September 4, 2009 1:08 AM

Misange said:

In excel 2010, in you export the graph to a vector graphics editor like illustrator, scatter plots are awfull because the markers are pixellised and this cannot be modified. Please modify this urgently !

I do agree with Jon about the dialog box. Now you have 4 tabs (and thus at least 8 clics !!) to adjust the markers : style, fill, border, line.

The four options are listed one after the other, the line formating is inserted in between (why ?)

And you need 2 tabs for line formatting.

In addition, you just cannot clic somewhere to say "remember this, I hate 2.75 wide lines and never use them. By default create ALL line graphs with 1pt wide ones ". I NEVER create scatter plots with 9pt large markers and thus have to modify all my graphs.

You can create template charts. But again you will need additional clics to apply them. You can create one default chart. But the easiest would be to add the possibility to define the default formating for individual elements of charts, exactly as you can do for shapes.

The point is that people who use a lot graphs do loose a lot of time to do things that were very easily done in 2003. I can understand that some people need to have "beautiful" (ugly in my opinion) color or 3D effects. But remember that a number of other people need to create rapidly "simple" graphs...

Misange

# September 9, 2009 12:09 PM
New Comments to this post are disabled
Page view tracker