Client/Server Performance

In any client/server application, many factors can affect performance. With most applications, the component that causes the most variability in application behavior is the network. Large corporate networks are complex, and there can be many reasons for differing performance. Network segments might not be the same—some might be fast fiber-optic, other segments might be slower thin-Ethernet. When network traffic through one route is high, messages might be rerouted. At certain times of the day, there might be high levels of network traffic. Networks are complex, so behavior is frequently hard to predict.

For this reason, the answer to improving client/server performance is to cut out the network. That’s clearly not a possible solution, so the next best thing is to reduce network traffic to a minimum.

Perhaps this can be better illustrated in an example. One of the more useful GUI design widgets is the list box and its close relation, the drop-down list box, both of which are frequently used to display options for the user to select. A list could contain product numbers with their descriptions, for example, which would make purchase order entry easier. This is fine when the number of products is limited or the data is stored in a local desktop database such as Microsoft Access. Here the time to fill the list when the application starts is small, even with many hundreds of entries to be added to the list.

In a client/server architecture, where the data to be added to the list is transferred across the network and the number of products can easily reach tens of thousands (as in a purchasing system for a supermarket chain), the time required to fill the list soon will become prohibitive and also will hog valuable network capacity. The answer is to change your application design to provide a filtering form, which can be used to limit the number of records retrieved, instead of a list box. For example, you can filter to allow only products with codes within a small range to be retrieved at a time. Such a form could in fact be more useful than the original list box because it could also provide extra detail about the entry and dynamic sorting.

So in short, one of the best performance boosters for client/server systems is to cut down on network traffic. Don’t allow your application to request data it doesn’t need.