Saturday 8 June 2013

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