Benchmark-Driven Design

When choosing between two evils, I always like to try the one I’ve never tried before.

Mae West

Benchmarking is critical to successful physical design. You should carry it out early using representative models of the system to determine what strategies you should employ for different classes of problems (for example, moving large amounts of data from the front end to the back end or locking). Testing with models should include stress testing in such areas as high transaction rates, multiuser testing, and impacts on other systems. Designing the system incorrectly for these types of problems is expensive once the system has been written. With representative benchmarking carried out early, you should be able to upgrade servers and networks if required. Benchmarking will also give you an early indication of whether the application should be distributed over multiple servers or whether the design can remain simple. Where benchmarks show potential problems, you should evaluate alternative solutions. A set of solutions with varying performance characteristics, costs, and complexities will emerge. This process will enable the designer to select the most appropriate solution from a menu of solutions. These solutions are design patterns.

Benchmark-driven design is essential in Visual Basic 5 client/server applications in which there is a mix of technologies and a large potential for bottlenecks. The aim is to ensure that the technical infrastructure and the approach to using the infrastructure in the application will meet business needs for performance and reliability. To do this, you’ll need to develop a model of the system. The performance characteristics and options for Visual Basic 5 are very different from Visual Basic 3 or Visual Basic 4. On the whole, version 5 has great improvements—improvements that provide opportunities. For example, developing ActiveX components for remote activation sometimes had to be ruled out under Visual Basic 4 because of poor performance of the interpreted code. Using compiled code under Visual Basic 5 provides a massive performance boost and allows you to use Visual Basic where C or C++ was previously used.