Performance Tips

Introduction

This page contains some performance tips from our experience of using Iguana.

Smaller code modules for faster editing [top]

The Iguana Editor performance can degrade when you’re working on a channel with a very large main module. The reason for this is the overhead of annotations increases proportional to the the size the module, and eventually causes a noticeable slowdown when editing code. The solution is simple move functions from the main module into a local module or shared module.

You can also use the Toggle auto-execution button on the toolbar to turn off annotations, but this is the disadvantage that annotations will not be available for debugging.

You can apply the same technique to any large module, not just main. But we urge caution as you should never break a module into multiple parts for performance reasons, it should only be done to improve program structure. You are better to toggle auto-execution on-off as needed, and it can also be helpful to (temporarily) comment out calls to some of the functions in the module.

Which brings back to moving modules from the main module – to where? The good news is  that the main module should really only contain one function the main() function. Functions that are specific to the channel should be in a local module, and functions that are useful to share with other channels can go in a shared module.

Improving Iguana Performance When Using the ‘To File’ Destination Component [top]

If you have created a channel whose destination component is To File and you are writing individual messages to separate files, it is best to have a purge script available to delete or move files from the directory into which they are written by the channel.

If the destination directory for the To File channel contains a very large number of messages, adding new files to this directory will take progressively larger amounts of time. This is because your computer’s operating system (such as, for example, Windows) needs to maintain an internal data structure to keep track of all of the files in a directory.

Moving or deleting files from the destination directory on a regular basis will ensure that the performance of this channel is not adversely affected.

Leave a Reply