Collabora Online performance wins – what we did for CODE and Collabora Online 21.11

Learn about the many performance improvements in CODE and Collabora Online 21.11

CODE 21.11 – announced yesterday – and of course also Collabora Online 21.11 bring together many performance improvements that we have been working on through the 6.4.x lifecycle as well as some more advanced optimizations. These are rather hard to screenshot for your viewing pleasure for obvious reasons, so please forgive some technical details and links to further reading for those interested. It is ongoing work; more about that at the end of this blog.

Asynchronous save

Collabora Online works hard to preserve your edits in the unlikely case of server-side failure. We regularly auto-save the document while users are editing, however in the past storing your document through to the back end storage had to be completed successfully before the user could continue typing. This could cause some jerkiness from time to time as people typed. Now this up-loading part of the saving is done asynchronously – i.e. in the background. For more technical details you can enjoy a talk on the design. For times when it is necessary to save synchronously such as during a save-as, we now provide animated user-feedback, color-coded according to the respective current application:

Accelerated JavaScript

Lots of work has been done first to profile, and then to optimize the performance of Collabora Online. Our profiles showed, somewhat surprisingly, that a lot of the scope for improvement was in the browser. As such we have significantly improved our websocket message handling, pixel processing and grouping of UI refreshes to give very significant interactivity improvements to more recent 6.4.x versions.

Online calc profile image before optimization
avoiding duplicate work (shown) by performing DOM updates after processing a batch of incoming events.

Moving more of the document to the client

Collabora Online 21.11 brings an understanding of text documents’ page positioning to the browser. That allows us to rendering page surrounds there avoiding a source of perceived flicker when moving up and down documents, and giving a smoother experience. This builds on more recent work in Calc to render worksheet backgrounds, and grid in the browser for similar reasons – giving slicker editing.

Improved spreadsheet performance in Calc

Collabora continues to put a lot of effort into enhancing the performance of our collaborative office suite. As an example, our streamlining of the Find & Replace functionality resulted in a massive performance boost. Also, opening speed of large XLSX files saw a some significant improvements. In Collabora Online 21.11, we have fundamentally revised the way spell checking is done in Calc with a new spell check that prevents continual re-rendering as strings are processed, while also caching spell-checking information, yielding considerable performance improvements. Similarly, AutoFilter searching has been optimized for large numbers of unique records.

Improved multi-user editing

One of the unfortunately pathological test-cases users like to do is to mash the keyboard – which generates text at around ten times the speed of a normal typist. Nevertheless this is something we have been optimizing along with scalability to larger numbers of concurrent editors of the same document. For more details checkout some insights into our ongoing work, or a deeply technical blog on optimizing for a larger number of users. Failing that – we have a video of a torture test of an intense multi-user editing session showing old, 6.4.x, and 21.11 versions from top to bottom:

Optimizing pathological loads – old/6.4.x/21.11

Ongoing work

We continue to work to profile and optimize uses-cases that are important to our users, the upcoming 21.11 micro-releases will exhibit more continuous improvement in this area – as well as ongoing improvements to our document pixel compression to make things even faster and lighter. It is well worth staying up-to-date with the latest releases.

There is also a summary talk of many other recent performance improvements for those with a deep interest in this area.

Test CODE 21.11

 

Please try out CODE 21.11 and let us know of any workloads which you find have issues so that we may expand our internal testing & benchmarking to include them.

About Collabora Online

Collabora Online is the powerful LibreOffice-based online office that supports all major documents, spreadsheets and presentation file formats, which can all be easily integrated in many infrastructures and solutions. Key features are collaborative editing and excellent office file formatting support. Collabora Online is excellent for enterprises that need a powerful office suite in the Cloud, or on-premises, that protects their privacy and allows them to keep full control of their sensitive corporate data. Collabora Online – built on LibreOffice Technology – enables Hosting and Cloud businesses to include document viewing and collaborative editing functionality into their service offerings.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.