Making pages with tables load faster in OneNote
Way back in 2007 when I started this blog, I had an idea to take a look at a bug we fixed and write an article about that specific bug. As near as I can tell, I have never gotten around to doing this and have decided to finally get this done.
At some point while I was "dogfooding" OneNote, I create a table in my personal notebook that had 4 columns and about 200 rows. By OneNote standards, or at least my usage, that is a fairly large table. I used it as a log table of my running, by the way.
Anyway, when I opened that page on the desktop version of OneNote, I would add a new row for each run. I always did this at home on my laptop and at the the time, I just had Windows 7 on it. The point is I would seldom use the OneNote client from the Windows store to edit on this page.
While at work one day, I needed to open that page for some reason and when I did, I used the immersive client from the store. It took a long time - about 12 seconds - so I stopped what I was doing to see why it was taking so long. The performance was fairly easy to reproduce and I noticed that the CPU usage was spiking very high when opening that one page. Breaking into a debugger was the next step and we noticed that the spell checker was running and that was the culprit. I'll spare everyone the gory details, but we were basically running the spell checker as the page was loading and before it was fully done. The change we made was to essentially hold off on starting the spell checker until the page finishes loading.
Now that page opens in the same amount of time on both of the Windows clients. Pretty nifty fix, I think, and I just wanted to point out this one example as an incremental improvement we made to the most recent client.
Questions, comments, concerns and criticisms always welcome,