Monday, April 23, 2012

Factors Affecting Performance of web application

It has been known for years that although software development constantly
strives towards constant improvement, it will never completely be 100%
perfect. An application’s performance, in turn, can only be as good as in
comparison to its performance objectives.
Performance problems affect all types of systems, regardless of whether they
are client/server or Web application systems. It is imperative to understand
the factors affecting system performance before embarking on the task of
handling them.
Generally speaking, the factors affecting performance may be divided into
two large categories: project management oriented and technical.
Project Management Factors Affecting Performance
In the modern Software Development Life Cycle (SDLC), the main phases
are subject to time constraints in order to address ever growing competition.
This causes the following project management issues to arise:
➤ Shorter coding time in development may lead to a lower quality product
due to a lack of concentration on performance.
➤ Chances of missing information due to the rapid approach may disqualify
the performance objectives.
➤ Inconsistent internal designs may be observed after product deployment, for
example, too much cluttering of objects and sequence of screen navigation.
➤ Higher probability of violating coding standards, resulting in unoptimized
code that may consume too many resources.
➤ Module reuse for future projects may not be possible due to the project
specific design.
➤ Module may not be designed for scalability.
➤ System may collapse due to a sudden increase in user load.

Technical Factors Affecting Performance
While project management related issues have great impact on the output,
technical problems may severely affect the application’s overall
performance. The problems may stem from the selection of the technology
platform, which may be designed for a specific purpose and does not
perform well under different conditions.
Usually, however, the technical problems arise due to the developer’s
negligence regarding performance. A common practice among many
developers is not to optimize the code at the development stage. This code
may unnecessarily utilize scarce system resources such as memory and
processor. Such coding practice may lead to severe performance bottlenecks
such as:
➤ memory leaks
➤ array bound errors
➤ inefficient buffering
➤ too many processing cycles
➤ larger number of HTTP transactions
➤ too many file transfers between memory and disk
➤ inefficient session state management
➤ thread contention due to maximum concurrent users
➤ poor architecture sizing for peak load
➤ inefficient SQL statements
➤ lack of proper indexing on the database tables
➤ inappropriate configuration of the servers
These problems are difficult to trace once the code is packaged for
deployment and require special tools and methodologies.
Another cluster of technical factors affecting performance is security.
Performance of the application and its security are commonly at odds, since
adding layers of security (SSL, private/public keys and so on) is extremely
computation intensive.
Network related issues must also be taken into account, especially with
regard to Web applications. They may be coming from the various sources
such as:
➤ Older or unoptimized network infrastructure
➤ Slow web site connections lead to network traffic and hence poor
response time
➤ Imbalanced load on servers affecting the performance

No comments:

Post a Comment