{"title":"Performance Diagnosis for Inefficient Loops","authors":"Linhai Song, Shan Lu","doi":"10.1109/ICSE.2017.41","DOIUrl":null,"url":null,"abstract":"Writing efficient software is difficult. Design and implementation defects cancause severe performance degradation. Unfortunately, existing performance diagnosis techniques like profilers are still preliminary. They can locate code regions that consume resources, but not the ones that waste resources. In this paper, we first design a root-causeand fix-strategy taxonomy for inefficient loops, one of the most common performance problems in the field. We then design a static-dynamic hybrid analysis tool, LDoctor, toprovide accurate performance diagnosis for loops. We further use sampling techniques to lower the run-time overhead withoutdegrading the accuracy or latency of LDoctor diagnosis. Evaluation using real-world performanceproblems shows that LDoctor can provide better coverage and accuracy thanexisting techniques, with low overhead.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"43 1","pages":"370-380"},"PeriodicalIF":0.0000,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"47","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSE.2017.41","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 47
Abstract
Writing efficient software is difficult. Design and implementation defects cancause severe performance degradation. Unfortunately, existing performance diagnosis techniques like profilers are still preliminary. They can locate code regions that consume resources, but not the ones that waste resources. In this paper, we first design a root-causeand fix-strategy taxonomy for inefficient loops, one of the most common performance problems in the field. We then design a static-dynamic hybrid analysis tool, LDoctor, toprovide accurate performance diagnosis for loops. We further use sampling techniques to lower the run-time overhead withoutdegrading the accuracy or latency of LDoctor diagnosis. Evaluation using real-world performanceproblems shows that LDoctor can provide better coverage and accuracy thanexisting techniques, with low overhead.