Conclusion: results of web application performance optimization

Illustration of the results of web application optimization with server, database, frontend, performance growth graph and infrastructure

In the course of this work, individual methods for optimizing the performance of web applications, the development of which is carried out on the basis of the Yii2 framework, are considered. The terminological apparatus necessary to achieve the research goal has been determined. A classification of methods for optimizing the performance of web applications using the Yii2 framework according to the components of the software system is proposed. Within the framework of the corresponding classification, it is proposed to optimize the performance of web applications at the levels of: Yii2 framework; databases; frontend (client part of the application); as well as server infrastructure. The above approach constituted the scientific novelty of this study.

The first chapter defines the research terminology and discusses the general principles of optimizing the performance of web applications. It is concluded that optimizing the performance of web applications is a complex task that includes various levels of the system - from the client part to the server infrastructure. Performance optimization should be based on objective data obtained through benchmarking, profiling and monitoring. To determine the current state of the system and make decisions regarding the choice of optimization techniques, it is necessary to take into account various metrics for measuring and analyzing performance.

The second chapter analyzes the optimization capabilities provided by the Yii2 framework. Optimization methods such as configuration settings are considered; caching; Effective work with Active Record. It has been shown that the use of built-in tools can reduce the load on the server and database.

Based on the results of the analysis carried out in the second chapter, we can conclude that optimization at the Yii2 framework level can improve the performance of a web application without changing the server infrastructure. In the practical part of the work, the use of a simple built-in minification tool made it possible to increase the loading speed of static resources within the application developed for this work by approximately three times.

The third chapter is devoted to optimizing performance at the database level as one of the most important components of a web application. Methods for optimizing the database structure, effectively constructing SQL queries, and optimizing data access are considered. It is concluded that the database often becomes the main source of delays in the operation of web applications.

From the results of the analysis carried out in the third chapter, we can conclude that optimization at the database level plays an important role in ensuring high performance of web applications. The most significant impact is determined by the definition of a reasonable database structure, the use of indexes, and the correct construction of SQL queries.

The integrated application of the above optimization techniques will significantly reduce the load on the database, speed up query execution, and also increase the scalability of the system. Together with optimization at the framework, front-end and infrastructure levels, this will ensure stable and efficient operation of the web application. In the practical part of the work, the use of indexes made it possible to increase the speed of query execution by approximately 975 times.

The fourth chapter examines methods for optimizing application performance at the front-end level (client part of the application). Discussed are ways to reduce the amount of data transferred, minify and pool resources, lazy load media, use a CDN, asynchronously interact with the server, and optimize rendering. Interface performance has been shown to directly impact user experience and perceived system speed.

Based on the results of the analysis carried out in the fourth chapter, we can conclude that front-end optimization plays an important role in ensuring high speed of the web application and a comfortable user experience. The main areas for improving productivity include the following techniques: reducing the size and number of downloaded files; lazy media loading; using CDN for static resources; asynchronous interaction with the server; optimization of page structure and rendering. The integrated use of these methods can significantly reduce page loading time, reduce server load and increase interface responsiveness, which is especially important for modern high-load web applications.

The fifth chapter is devoted to infrastructure optimization methods. The possibilities of setting up the Nginx web server are considered, including setting up caching of static resources, data compression, optimizing connection parameters, as well as microcaching. Based on the results of the analysis carried out in Chapter 5, we can conclude that infrastructure optimization methods play an important role in ensuring high performance of web applications and can be implemented in parallel along with other techniques.

In the practical part of the work, it was concluded that the use of compression algorithms can significantly reduce the size of transferred files (up to 87-89%). Brotli compression algorithm is more efficient than Gzip. On average, the Brotli algorithm provides 2-5% higher compression rates than Gzip, depending on the specific file.

As a result of the study, the following main conclusions can be drawn:

1) the performance of a web application depends on a combination of factors and often cannot be fully ensured by optimizing only one component of the system;

2) the greatest efficiency can be achieved by applying an integrated approach to performance optimization, covering all the necessary levels of optimization;

3) optimizing database performance, including reasonable determination of table structure, appropriate use of indexes, and elimination of redundant queries, can significantly increase the speed of the application;

4) optimization at the front-end level plays an important role in improving the user experience and, in some cases, helps reduce the load on the server;

5)infrastructural methods for optimizing the performance of web applications ensure stability and predictability of system operation as the load increases.

Thus, the set goal of the work - systematization of methods for optimizing the performance of web applications developed using the Yii2 framework - was achieved.

The practical significance of the work lies in the fact that the considered performance optimization techniques can be used in the development, maintenance and refactoring of modern web applications of various sizes, including high-load ones. Application of the techniques discussed in this work in the process of developing web applications will allow:

  • increase the speed of web applications and improve the user experience when interacting with such an application;
  • reduce the load on the server infrastructure and database (as well as reduce the cost of maintaining such infrastructure and energy consumption);
  • increase reliability, predictability of system operation, and ensure application scalability.

As the performance demands of web applications increase, optimizing the performance of web applications will become increasingly important in the software development process. A promising direction for further research may be the use of containerization and orchestration technologies in the process of optimizing application performance, as well as automatic system scaling based on the current load.