I often hear at my workplace discussions and reviews that any application must be designed for scalability and performance. It is absolutely true and both are not one and the same.Â Ideally, software must be designed and developed to efficiently perform with a given set of hardware resources. And when we add more hardware to it, we should get proportional throughput from the system. Read recent posts by Werner Vogels at All Things Distributed for good insights into the some of the concepts.
At my work, we recently had a scalability problem forced by market. One of our products was not able to deliver expected and promised throughput. It is imperative that we improve whatever way possible to get to the throughput.
We have two ways to achieve the throughput. By scaling, adding more hardware resources(scalability) orÂ to optimize software to perform better for a given set of hardware resources(Performance).
We had a big element of surprise, a Big Thank you to Sun Studio 11 Compiler suite. When the software is compiled using the new Studio 11 C++ compiler, initial reports indicated that we had almost 28% gain in throughput. Wow!! If you have a C++ application, give it a try and I bet you will be surprised and pleased. So we got a boost in our performance that would satisfy most of our current throughput requirements. No need to spend any money on the extra hardware.