Software Performance
During software development projects, it has been concluded that any development process that has implementations considering performance issues take longer to finish than the projects that do not have any worries about performance. This issue is not a surprise, as it is expected to be so.
The surprise is, the efforts made on improving poerformance are not always efficient, as sometimes the team results in being working on a performance optimization that does not always improve the perfomance.
Leaving out the exceptions, I do believe that the approach to the performance optimisation should be handled such ;
Considering a development Project, nowadays the real cost is the software development cost. The hardware prices continually went lower during the past years, and the hardware cost is minimal compraing to the development cost. For instance an application server on which the optimized code runs may be costing 2000$ but the version without performance optimization needs to be run on a machine costing 5000$. For a team consisting of 10 person working on the Project for a year, summing to 10000$ cost/month, if the period studied on performance is more than 1 week, the cost optimization is not made.
Furthermore, the architectural or code change regarding performance issues makes the code tougher to read, change, test, interchangebility of the developers.
Especially intermediate developers tend to work performance oriented. For instance, it is common for one to keep the business logic in the rdbms via stored procedures. As this is an intance in which serious performance gains are to be made, it lowers the code quality seriously, harms the architecture, makes the database engine non changable, the whole Project non-testable, is very persistent facing requirement changes, harms reusability.
If one chooses this approach and faces performance problems afterwards, there is a solution to the problem. If architecture is suitable (testable I mean) it is not tough for one to test the system and find the bottlenecks and work on them to improve the performance. That not only solves the perofmrance problem, but cuts the unneeded performance optimization effort to minimum. Most projeects do not need a performance optimization, though.
It should not be understood that I do state that if an opportunity to choose between high performance or low performance solutions during the code development and the selection does not affect the code quality, the bad performanced one should be chosen. If the benefits are clear and there are no side affects, it is obvious that the beter performant should be selected.

0 Comments:
Post a Comment
<< Home