Speeding Up Relation Windows

The Relation Window is a new feature in version Source Insight 3.0. Its purpose is to show relationships between symbols. It works like the Context Window in that it works in the background and automatically shows information about what is selected. For example, if you select a function call, it can show you the call tree starting at that function.

The Relation Window can require a lot of processing. Some relationships are slower to compute. The relationships fall into three categories, listed here from fastest to slowest:

Contains – show the contents of the current symbol. For example, show members of a struct.

Calls – show what other symbols are referred to by the current symbol. For example, show functions that are called by the current function.

References – show what other symbols refer to the current symbol. For example, show functions that call the current function.

For very large projects, the “References” relationship will be by far the slowest to compute. The performance seems very acceptable on a Pentium II machine with a moderate sized project (about 200,000 lines of code).

Limiting the relations to non-reference type relations will speed the Relation Window up.

It also works well by leaving the Relation Window locked. To lock the Relation Window, click on the lock button in the Relation Window toolbar. You can refresh the Relation Window at any time by using the Refresh Relation Window command, or by clicking on the Refresh button in the Relation Window toolbar.