Updated on 2025-05-22 GMT+08:00

Introduction

How to design high-performance architecture is a common challenge. Performance is essential as a core quality attribute. The impact of performance issues can be severe. Many companies have faced such problems both internally and externally. This chapter describes some technical methods for implementing software performance engineering and improving system performance.

Early design choices significantly impact the need for and effectiveness of performance tuning. You need to manage performance actively at the beginning of design and development for highly performance-sensitive software.

Additionally, you need efficient technical measures for designing systems, architectures, solutions, and coding.

Figure 1 Performance efficiency pillar

Many people believe that performance issues come from poor architecture or design rather than inefficient coding. While teams may introduce these issues early in development, they often fix them only during or after integration testing. In fact, performance issues often arise during coding, and fixing architectural problems is far more expensive. The following factors affect system performance:

  • System and architecture design: a decisive factor that must be considered early in the design process.
  • Implementation solution design: a main factor that can be modified only when there is no need to change the overall architecture.
  • Coding implementation: an important factor that can be improved continuously.

Performance issues with systems or components are reflected in these ways:

  • It takes too long to respond to requests.
  • Too many resources are consumed.

Common performance issues of a system or component typically arise in these areas:

  • Communication or invoking between entities (including databases)
  • Frequent invoking of functions, issues with stored procedures in modules, and issues with data organizations
  • Delay caused by contention for resources during parallel processing
  • Waiting time and delay in serial processing of processes or threads