Although optimization is a logical choice for those who write time-critical or real-time programs, it has more widespread uses. All types of software can in fact benefit from optimization.
- As programs leave the development environment and are put to use in the field, the amounts of data they need to handle will grow steadily. This eventually slows the program down, perhaps even to the point of it being unusable.
- Carefully designed and implemented programs are easier to extend in the future. Consider the benefits of adding functionality to an existing program without concern about degrading its performance due to problems in the existing code.
- Working with a fast program is more comfortable for users. In fact, speed is typically not an issue until it slows users down.
- Time is money.
A tempting question that you are bound to ask sooner or later is, Why not just buy faster hardware? If your software does not seem able to cut it anymore, why not simply upgrade to a faster processor or use more or faster memory? Processing speed tends to double every 18 months, so algorithms that might have posed a problem six months or a year before might now be doable. But there are a number of reasons why optimizing software will always be needed.
A faulty design or implementation decision in an algorithm can easily slow it down 10–100 times, when sorting or storing data, for example. Waiting for hardware is only twice as fast is not a solution.
Programs, and the data they handle, tend to grow larger and larger during those same 18 months, and users tend to run more and more applications simultaneously. This means the speed requirements for the program might increase as fast as, and sometimes even faster than, the hardware speed increases.
When programmers do not acquire the skills to optimize programs, they will find themselves needing to upgrade to new hardware over and over again.
With software that is part of a mass-market system (for example, embedded software in TVs, VCRs, set-top boxes, and so on), every cent of cost will weigh heavily. Investments in software occur only once, whereas investments in hardware are incurred with every unit produced.
While processors continue to become faster and cheaper, their designs change also. This means that more investments need to be made to upgrade other parts of the systems.
The lower the system requirements for a certain program are, the larger the market it can reach. Buying new hardware to solve software problems is just a temporary workaround that hides rather than solves problems.
Spec India is a Custom Software Application Development and Software Solutions Company based in Ahmedabad, India. Our Services includes iPhone Application Development, Android Application Development, ORACLE, .Net, and Mobile Computing.
Article from articlesbase.com
Leave a Reply
You must be logged in to post a comment.