New Analysis Engine Now Generally Available! 

We’re thrilled to announce that the New Analysis Engine is now generally available (GA)! This major milestone is all thanks to the feedback from our early adopters and app makers during the experimental and preview stages. 

App load time for a sample app, with the new analysis engine (top) and existing analysis engine (bottom)

An improved static analysis made this speed up possible

While you edit or play your app in Studio, a continuous analysis of app elements and their interactions is happening in the background. This lets Studio determine the types of all the variables and collections in your app, maintain a real time dependency graph of relationships between different expressions, and keep track of what columns your app uses from every data source. For example, this allows us to know that if you change an expression `Set(x, 5)` to `Set(x, {Lorem: “Ipsum”})` that the type of `x` is now a record instead of a number, and any references in your app to `x + 1` will therefore be marked as erroneous.  

What’s New? 

  • Performance Boost: The New Analysis Engine optimizes how we approach that analysis, ensuring that we can get it started faster when you load your app in Studio, and that we keep things up to date quicker while you edit. The new analysis algorithm scales linearly with app size, eliminating complex cases that previously caused performance issues. Complex Canvas apps that previously took minutes to load should now load much faster. 

    While this performance boost will be most noticeable for the largest apps that you build, we see improvements across the board when switching to the New Analysis Engine.

    Note: These improvements have no impact on app run time performance of a published app.

    Here are some statistics from real apps showcasing the performance improvement on app load for existing analysis and new analysis: 
  • Accuracy: The New Analysis Engine is not only faster but also more accurate. It enables more accurate determination of variable and collection types. When analyzing field usage (Explicit Column Selection), the New Analysis Engine reliably identifies the columns used in your app, addressing several long-standing bugs and enhancing Data Source call performance in published apps. Additionally, it facilitated the development of the User Defined Functions feature, which would not have been feasible with the previous engine.
  • Preview No More: Thanks to your valuable feedback during the experimental and preview phases, we’ve fine-tuned the engine. It’s now ready for prime time!

What You Need to Do 

  • New Apps: For all new apps you create, the New Analysis Engine will be turned on by default. Enjoy the improved performance right from the start! 
  • Existing Apps: If you have existing apps, we recommend enabling the New Analysis Engine. Here’s how:
    • Open your app in Studio. 
    • Go to Settings. 
    • Go to Updates. 
    • Look for the “New Analysis Engine” toggle on the New tab. 
    • Turn it on. 
    • Test your app thoroughly to ensure everything works as expected. 

A Word of Caution

While we’re confident in the New Analysis Engine’s capabilities, please refrain from using it for existing apps in production environments until you’ve thoroughly tested your app. Subtle behavior differences may arise, and we appreciate your vigilance. 

Your Feedback Matters

JOIN the discussion

Go to community forum

As always, your feedback is invaluable. Let us know how the New Analysis Engine performs for you. Share your experiences, report any issues, and help us fine-tune this feature further on the community forum

Thank you for being part of our Canvas app community! Together, we’re making app development smoother, faster, and more delightful.

Happy app building!