Chapter 25. Optimizing Your Storyboard Application

Table of Contents

Performance Considerations
Measuring Performance
Choosing the Right Image Format(s) Bit Depth
Framerate (Frames Per Second)
Scaling Images
Reducing Output Verbosity
Adjusting Engine Rendering Options
Managing Resource Memory

Performance Considerations

All actions are executed within the context of an event delivery and as such their execution will have an impact on the overall throughput and responsiveness of the system. In particular with Lua scripts, it is important to limit the length of time that functions take to perform their work or to separate lengthy operations into separate tasks, threads or processes depending on the operating environment being used.

The screen manager listens for data changes and checks the state of controls to determine when the display needs to be refreshed. If the data for controls is changing rapidly this may cause thrashing of the display and possible flicker if not using double buffering. When changing data values, moving controls, or generating events which would cause the display to be updated, it is advisable to hold the screen manager updates until all changes have been made.  Once modifications are complete the screen manager can be released and the display updated is needed. The actions are as follows:

  1. gra.screen.hold

  2. gra.screen.release