reverse_engineer

Personal website of Aurélien Vermylen

Hail HTML5

Today, I tried to open the Excel workbook that we use for our accounting at my badminton club on my new chromebook. Chrome OS comes with an official chrome-extension to handle “Office” files: “Office Editing for Docs, Sheets & Slides”. Great, it’s purely in the browser! But…

RAM solves it all

But, of course, it barely works when you’re doing something in the real world…

The Excel file is about 8.3 Mb, and contains one large “main” sheet with all transactions of our badminton club since 2013 (around 2683 lines of 30 columns, with a few calculated ones.) Some other sheets are present, and are mainly reports based on that main sheet. There is one large dynamic chart of the main sheet (that shows the account balance) and there is a filter set in the main sheet.

Well, I must say that it actually opens up in the Chrome extension, after waiting for two or so minutes, and watch the extension take 3 Gb of RAM, the workbook is opened! Hail HTML5! And of course, clicking on a cell or moving the cursor takes about 1 second before it responds…

In Windows

Under Windows 10, with a regular Office 13, it takes a few megabytes of RAM, and is fast as hell.

Actually, I’ve worked with workbooks of up till 500 Mb, and enjoyed a great responsiveness from MS Excel once it’s loaded into RAM. It also uses good multicore processing when evaluating cells now, so Excel under Windows is actually a great tool for manipulating even relatively large amounts of data (no, not “Big Data”…)

But of course, it’s Microsoft, so it must be evil crap.

HTML5 vs native

This example might not be representative of the capabilities of HTML5, because you can read this post to see that javascript can actually be performant and come close to native efficiency. If Microsoft would give me the source code to MS Excel (that’s probably much in C or C++), we could try to compile the official MS Excel to javascript with emscripten and check performance there (given the use of SSE and multi-threading, I don’t think it would be possible without hard work). It might just be that the implementation of the Chrome extension “Office Editing for Docs, Sheets & Slides” is quite sloppy, or somehow not optimized to be compatible with MS Excel files.