Optimizing toolkit-generated graphical interfaces

Researchers have developed a variety of toolkits that support the development of highly interactive, graphical, direct manipulation applications such as animations, process monitoring tools, drawing packages, visual programming languages, games, and data and program visualization systems. These toolkits contain many useful features such as 1) structured graphics, 2) automatic display management, 3) constraints, and 4) high-level input-handling models. Despite a number of optimizations that have been described in the literature, most toolkit-generated applications run in a predominantly interpreted mode at runtime: they dynamically determine the set of constraints and objects that must be redisplayed, which requires the use of time consuming algorithms and data structures. The optimizations that do exist rely on semantic information that applies globally to all operations in an application. In this paper we identify a number of optimizations that require local, operation-specific semantic information about an application. For each operation, these optimizations pre-compute update plans that minimize the number of objects that are examined for redisplay, and pre-compute constraint plans that minimize the amount of dynamic scheduling and method dispatching that is performed for constraint satisfaction. We present performance measurements that suggest that these optimizations can significantly improve the performance of an application. We also discuss how a compiler might obtain from a programmer the information required to implement these optimizations.

[1]  Ralph D. Hill Languages for the construction of multi-user multi-media synchronous (MUMMS) applications , 1992 .

[2]  Paul R. Calder,et al.  Glyphs: flyweight objects for user interfaces , 1990, UIST '90.

[3]  Ralph D. Hill The Rendezvous constraint maintenance system , 1993, UIST '93.

[4]  Bjørn N. Freeman-Benson A module mechanism for constraints in Smalltalk , 1989, OOPSLA 1989.

[5]  Alan Borning,et al.  Constraint-Based Tools for Building User Interfaces , 1986, ACM Trans. Graph..

[6]  Brad A. Myers,et al.  Languages for developing user interfaces , 1992 .

[7]  Paul S. Barth An object-oriented approach to graphical interfaces , 1986, TOGS.

[8]  Bradley T. Vander Zanden Incremental Constraint Satisfaction and its Application to Graphical Interfaces , 1988 .

[9]  John H. Maloney Using constraints for user interface construction , 1992 .

[10]  Tyson R. Henry,et al.  Using active data in a UIMS , 1988, UIST '88.

[11]  Michael Sannella The skyblue constraint solver , 1992 .

[12]  A. Borning,et al.  Constraint technology for user-interface construction in ThingLab II , 1989, OOPSLA 1989.

[13]  Alan Borning,et al.  ThingLab: a constraint-oriented simulation laboratory , 1979 .

[14]  Brad A. Myers,et al.  Integrating pointer variables into one-way constraint models , 1994, TCHI.

[15]  Brad A. Myers,et al.  Making Structured Graphics and Constraints Practical for Large-Scale Applications , 1994 .

[16]  Bjørn N. Freeman-Benson A Module Mechanism for Constraints in Smalltalk , 1989, OOPSLA.

[17]  Roger B. Dannenberg,et al.  Garnet: comprehensive support for graphical, highly interactive user interfaces , 1990, Computer.

[18]  Marc H. Brown,et al.  Exploring algorithms using Balsa-II , 1988, Computer.

[19]  Scott E. Hudson A System for Efficient and Flexible One-Way Constraint Evaluation in C++ , 1993 .