Excel Calculation Performance

With all the discussion about XML file formats, people seem to have forgotten one of the main reasons for picking an Office suite.  Performance.  I've always been super impressed with the Excel development team, and how well they've optimized the Excel "Calc" engine.  I threw together this video that demonstrates how OpenOffice 2.0.2 compares to Excel 2003 and Excel 2007 beta 2.

Before I get flamed for spreading FUD or get accused of rigging these results, let me say a few things:

  1. I work for Microsoft but I do not speak for Microsoft.  This is my own personal blog and I have not been asked by Microsoft to share these results.  I'm simply proud of the work my co-workers have done and want to share some of the amazing features in Office.  Especially features that don't get a lot of attention (but are impressive nonetheless).
  2. Here is a link to the test file.  Please feel free to run this test on your own system.  Your mileage may vary.
  3. The test file was created to exercise the calculation engine.  It was not created to represent a typical Excel file.
  4. The test file is made up of SUM's, divisions, IF's and VLOOKUP's because historically these are the most often used functions within Excel.

I don't believe this is a suprise to anyone who has been paying attention.  Michael Meeks discussed this OpenOffice problem at Linuxworld Boston, and of course George Ou has mentioned OpenOffice performance problems in the past as well.  I don't think of this as so much a weakness of OpenOffice, rather a testament to the complexity of spreadsheets and the amount of work Microsoft has put into optimizing Excel's calc engine.  I just thought it might be fun to actually see the difference visually.


4 thoughts on “Excel Calculation Performance

  1. The test file is a Zipped XLS file. Feel free to download it and run it on Mac Office. To run the test, simply change the number in cell C2 to 2 and press enter. The test is done when cell A2 says “DONE”. With my video, I ran all of the apps from the same laptop, and I used an excellent little timer called “XNote Stopwatch” (http://www.stopwatch-timer.com/)

  2. Now this issue doesn’t exist anymore, OpenOffice’s developers have fixed it with latest version (3.1).
    Even Sun developers are able to optimize OO Calc engine.

  3. If you want to make a more interesting test, make a small number of input cells, say 5. Break your formulas into 6 logical groups. Have 5 of those groups each depend on 1 of those input cells but not the others. Have the last group depend on the results of all 5 of the other groups.
    Now when you change a single input value, 1/3 of the model should recalc and the rest should not.
    Now interleave those formulas together across various rows, columns and sheets as much as you can.

    Then compare again.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s