Calcapp has twice as many active users today compared to just a couple of months ago. That’s wonderful news for the project, but does pose certain challenges for us. We need to ensure that everybody gets a great experience, both when editing apps and when running them.
Lately, that has been true for most apps, but not for very large apps. Starting in November, we saw an increasing number of issues with our server failing to process very large apps because of memory issues. These issues became especially worrisome when a large number of users requested very large apps simultaneously.
The good news, though, is that these issues should now be fixed for the foreseeble future. A few hours ago, we upgraded our server and tripled its memory.
If you see any error messages, please let us know. We do have automated systems that alert us to most issues that crop up, but they don’t catch all of them.
Also, we have more work to do to ensure that very large apps are handled well, especially when editing them in Calcapp Creator. (Editing apps is far more taxing on our server than simply running them, as your changes are constantly synchronized with our server as you make them.)
Our server is responsible for making sense of the formulas you write, turning them into code that is executed when you run your apps and verifying that they don’t contain any errors. As part of this process, it first breaks them down into their constituent parts like numbers, parentheses and references. The part of our server that does this work is known as a lexer.
We actually rewrote our lexer from the ground up in 2014 to make it perform significantly better, making it process formulas roughly 80 times faster. We think we can do even better, though. Indeed, we must do better, as it has turned out that our lexer accounts for a significant portion of the time it takes to go over your formulas.
Finally, we dramatically improved performance for very large apps this past summer, but moving forward to a panel with hundreds of fields can still be sluggish, especially on low-powered mobile devices. We look forward to investigating our options to determine how we can enable apps that never make you wait. We hope to both improve the performance of the web apps you produce today and introduce native apps with blazing performance at some point in the future.
That work will have to wait, though, as we’re currently in the final stages of adding support for paid plans and private apps requiring your users to sign in. (Don’t worry, we’ll continue to support public apps and apps you embed in your websites.)
Meanwhile, we hope you’ll see increased stability if you regularly use or edit very large apps, thanks to our upgraded server.