Making Calcapp Creator faster than ever

Calcapp Creator will soon be much faster when editing large apps. Changing a field name or caption will be up to 30 times faster and memory usage is expected to drop to half of what we currently use. We realized these gains by embracing modern web standards.

We are currently busy adding support for copy and paste, which will enable you to easily duplicate and move items and panels. Creating an app containing hundreds of calculation panels will now finally be practical. As a result, we fully expect your apps to balloon in size once you have access to this new feature.

We actually built an app containing hundreds of calculation panels a few months ago for a client. (We didn’t have access to copy and paste, so we cheated by working directly with the representation that Calcapp uses internally to represent your apps.) We found that performance started to suffer once we had created around fifty different panels. Renaming fields or changing their captions (which indirectly renames them) would cause the user interface of Calcapp Creator to perform very slowly. The user interface would freeze, sometimes for seconds at a time, and using the product became an exercise in frustration.

You probably haven’t experienced these slowdowns, because your apps aren’t yet sufficiently big, but as noted, your apps will likely soon become much bigger. We’re happy to announce that we have made Calcapp Creator significantly faster, meaning that it is now easily able to handle apps with hundreds of panels.

Changing the name of a field in our large app could take up to 140 milliseconds before. That’s 1/7 of a second, an eternity for a user interface where animations are expected to run at 60 frames per second (meaning that you can’t spend more than roughly 16 milliseconds to draw a frame). We are now down to around four milliseconds, making name (and caption) changes instantaneous. That’s more than thirty times faster.

Memory usage is also significantly down. Just the core memory consumed by Calcapp Creator (its heap) used to occupy more than 100 megabytes when loading our large app with more than a hundred calculation panels. It’s now down to around 50 megabytes. That makes Calcapp Creator capable of working with larger apps and makes it more suitable for low-powered devices, such as cell phones and tablets. (Though we continue to recommend that you build apps on a desktop or a tablet with an external keyboard — entering formulas using an on-screen keyboard obscuring the app designer will never be a great experience.)

What did we do to achieve these significant gains? We embraced modern web standards and updated some of the core technology we use. Web browsers have come a long way since we started working on Calcapp Creator, all the way back in 2014. Back then, we had to use third-party components for some of the core internal building blocks we use to realize Calcapp Creator (including the all-important dependency graph). Now, these components (sets and maps) come baked into all modern web browsers, with significant performance and memory gains to be had.

It’s a good time to have bet on the Web.

« Tip: Manage different versions of your app Tip: A better way to convert spreadsheet formulas »