<  Retour au portail Polytechnique Montréal

Performance Analysis of Complex Multi-Thread Applications Through Critical Path Analysis

Majid Rezazadeh

Mémoire de maîtrise (2019)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (4MB)
Afficher le résumé
Cacher le résumé

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: 18 avr. 2023 21:04
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

Actions réservées au personnel

Afficher document Afficher document