Reference number : GC-2017-Q1-01792, amendment number : , agreement type : G, recipient legal name : Fedorova, Alexandra (The University of British Columbia), recipient country : CA, recipient province : nan, recipient city : British Columbia|Colombie-Britannique, recipient postal code : nan, program name english : Discovery Grants Program - Individual, program name french : Programme de subventions à la découverte - individuelles, program purpose english : Software developers are among the most highly paid and sought-after talent in both Canada and the US; Canada alone facing a gap of 182,000 ICT workers. Shortage can be at least partially relieved with improved productivity. Our project will address an important and often overlooked aspect of software development productivity: performance debuggingtuning. A recent survey revealed that 92% of developers faced customer-affecting performance issues during the preceding year; all in all, ~300 interviewed engineers spent 130 man-months diagnosing and fixing performance problems. The respondents further admitted that the most difficult part of performance tuning was not actually fixing the problem, but gathering and analyzing evidence and getting to its root cause. 
 
Many performance tools exist, but their primary focus is collecting performance events, such as operation timestamps or hardware metrics, and not on the analysis of the data. As a result, engineers are often swamped with swaths of data, but have little idea how effectively use it. Performance tuning is further aggravated by the fact that today&rsquo;s engineers deal with a lot of code they did not write: sifting through performance data without understanding the code is hardly efficient. 
 
Based on these observations, the goal of our project is to unite performance analysis and program comprehension. We aspire to design methodologies, algorithms, and ultimately build visually rich tools that will to engineers not only enable effectively navigating through billions of performance events, but also enable the developer to comprehend the flow of the program, the layout of data structures and data access patterns, while at the same time relating them to performance metrics. Our hope is that these tools will help the engineer to simultaneously understand how the program works, how it accesses data, how it performs, and why it performs the way it does., program purpose french : Software developers are among the most highly paid and sought-after talent in both Canada and the US; Canada alone facing a gap of 182,000 ICT workers. Shortage can be at least partially relieved with improved productivity. Our project will address an important and often overlooked aspect of software development productivity: performance debuggingtuning. A recent survey revealed that 92% of developers faced customer-affecting performance issues during the preceding year; all in all, ~300 interviewed engineers spent 130 man-months diagnosing and fixing performance problems. The respondents further admitted that the most difficult part of performance tuning was not actually fixing the problem, but gathering and analyzing evidence and getting to its root cause. 
 
Many performance tools exist, but their primary focus is collecting performance events, such as operation timestamps or hardware metrics, and not on the analysis of the data. As a result, engineers are often swamped with swaths of data, but have little idea how effectively use it. Performance tuning is further aggravated by the fact that today&rsquo;s engineers deal with a lot of code they did not write: sifting through performance data without understanding the code is hardly efficient. 
 
Based on these observations, the goal of our project is to unite performance analysis and program comprehension. We aspire to design methodologies, algorithms, and ultimately build visually rich tools that will to engineers not only enable effectively navigating through billions of performance events, but also enable the developer to comprehend the flow of the program, the layout of data structures and data access patterns, while at the same time relating them to performance metrics. Our hope is that these tools will help the engineer to simultaneously understand how the program works, how it accesses data, how it performs, and why it performs the way it does., agreement title english : Performance comprehension of production software, agreement title french : Performance comprehension of production software, agreement number : RGPIN, agreement value : 250000.0, agreement start date : 2017-05-10, agreement end date : nan, description english : nan, description french : nan, expected results english : nan, expected results french : nan, additional information english : Grant or Award spanning more than one fiscal year. (2017-2018 to 2022-2023), additional information french : Subvention ou bourse octroyée s'appliquant à plus d'un exercice financier. (2017-2018 à 2022-2023), owner organization : nserc-crsng, owner organization title : Natural Sciences and Engineering Research Council of Canada | Conseil de recherches en sciences naturelles et en génie du Canada