What are the factors that affect application/system performance?

Ohhhh… Again a lazy Monday! Not sure what does impact my performance each Monday morning? Lazy morning, office work, and surrounding weather all hit me simultaneously. Oops, what I am discussing here. I should talk about performance testing-related stuff instead of my boring Monday…

Ok, so today I will share a good article which I read this weekend and found interesting with respect to Performance Testing. HP released a PDF in May 2016 which was updated by Microfocus in February 2018. This document is really a treasure for a performance tester. I am sharing a piece of information from that treasure. Hope you will also read and make your Monday interesting and informative.

I do not know what are the factors that impacted my performance, but you can get information on those factors which affect system performance 😊

Below is the important content which is taken from the article: 

Factors Affecting Performance

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.
  • The module may not be designed for scalability.
  • The system may collapse due to a sudden increase in user load. 

Technical Factors Affecting Performance

While project management-related issues have a 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, 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
  • a 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
  • an 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. The 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 various sources such as:

  • Older or unoptimized network infrastructure
  • Slow website connections lead to network traffic and hence poor response time
  • Imbalanced load on servers affecting the performance

Reference Document Link

You may be interested: