Mémoire de maîtrise (2019)
Document en libre accès dans PolyPublie |
|
Libre accès au plein texte de ce document Conditions d'utilisation: Tous droits réservés Télécharger (4MB) |
Résumé
ABSTRACT: Performance is a critical subject for huge and complex multi-thread applications. Many factors such as resource contention, inadequate synchronization algorithms, slow disk operations, etc. can affect performance. Many developers are not aware of the existence of the root cause of unexpected latencies, due to the large codebase of applications and the multiple levels of abstraction between the application code and hardware. Tracing is a technique which records events occurring in the system. Many performance issues can be diagnosed using the information gathered by an execution trace. Because of the negligible overhead of popular tracers, we can deploy them on production systems to capture bugs that occur infrequently. We can efficiently navigate in the large number of events, contained in execution traces, using specialized tools. However, even with these tools, it is difficult to identify the real root cause of performance bugs, without a deep knowledge of the analyzed system. In complex applications like the Chromium browser, which is our focus in this research project, being able to collect precise unified information from several layers of the application/system is the first challenge. The objective of this research project is to propose a solution which can facilitate the diagnosis of performance issues using the critical path analysis of executions. After explaining our tracing method for collecting data, from the application and the operating system kernel simultaneously, we compile the tracing data collected from several layers of the system into a unified model and use it to perform kernel-level control flow analysis for user-level browser actions. This serves to detect latency issues and identify their main causes. We show the effectiveness of the proposed method by detecting three Chromium performance bugs and finding their root-causes. Although our use-cases are based on the chromium browser, the proposed method and lessons learned are directly applicable to other complex multi-thread applications. In addition, we propose our method on critical flow extraction of browser user actions, which is used directly in latency problem detection and analysis. Using critical path analysis, we can identify the bottlenecks of executions which directly affect the total execution time. Hence, these kinds of problems are worth analysing.
Abstract
Performance is a critical subject for huge and complex multi-thread applications. Many factors such as resource contention, inadequate synchronization algorithms, slow disk operations, etc. can affect performance. Many developers are not aware of the existence of the root cause of unexpected latencies, due to the large codebase of applications and the multiple levels of abstraction between the application code and hardware. Tracing is a technique which records events occurring in the system. Many performance issues can be diagnosed using the information gathered by an execution trace. Because of the negligible overhead of popular tracers, we can deploy them on production systems to capture bugs that occur infrequently. We can efficiently navigate in the large number of events, contained in execution traces, using specialized tools. However, even with these tools, it is difficult to identify the real root cause of performance bugs, without a deep knowledge of the analyzed system. In complex applications like the Chromium browser, which is our focus in this research project, being able to collect precise unified information from several layers of the application/system is the first challenge. The objective of this research project is to propose a solution which can facilitate the diagnosis of performance issues using the critical path analysis of executions. After explaining our tracing method for collecting data, from the application and the operating system kernel simultaneously, we compile the tracing data collected from several layers of the system into a unified model and use it to perform kernel-level control flow analysis for user-level browser actions. This serves to detect latency issues and identify their main causes. We show the effectiveness of the proposed method by detecting three Chromium performance bugs and finding their root-causes. Although our use-cases are based on the chromium browser, the proposed method and lessons learned are directly applicable to other complex multi-thread applications. In addition, we propose our method on critical flow extraction of browser user actions, which is used directly in latency problem detection and analysis. Using critical path analysis, we can identify the bottlenecks of executions which directly affect the total execution time. Hence, these kinds of problems are worth analysing.
Département: | Département de génie informatique et génie logiciel |
---|---|
Programme: | Génie informatique |
Directeurs ou directrices: | Michel Dagenais |
URL de PolyPublie: | https://publications.polymtl.ca/4094/ |
Université/École: | Polytechnique Montréal |
Date du dépôt: | 06 oct. 2020 13:51 |
Dernière modification: | 30 sept. 2024 17:10 |
Citer en APA 7: | Rezazadeh, M. (2019). Performance Analysis of Complex Multi-Thread Applications Through Critical Path Analysis [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/4094/ |
---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements