冰山:Java临界区静态分析工具

Michael D. Shah, Samuel Z. Guyer
{"title":"冰山:Java临界区静态分析工具","authors":"Michael D. Shah, Samuel Z. Guyer","doi":"10.1145/2931021.2931025","DOIUrl":null,"url":null,"abstract":"In this paper we present a static analysis tool called Iceberg that helps programmers find potential performance bugs in concurrent Java programs. The focus of our work is on identifying critical sections with high variability in their latency: in most cases they execute quickly, but occasionally they stall, holding a lock for an unusually long time, and preventing other threads from making progress. The end user experiences such behavior as transient program \"hangs\". These performance bugs are difficult to find because they are infrequent, transient, and hard to reproduce. This paper describes our initial results running Iceberg on 24 real-world concurrent programs. Our current approach is to identify all of the code that could be executed inside each critical section, including all methods potentially called by it. We collect a number of code metrics that might indicate potential performance problems. These metrics include counts of variable-latency operations such as I/O and memory allocation, as well as overall measurements of critical section size. Using our tool we are able to find critical sections with unusual behavior compared to the other critical sections. Our future work includes a more detailed analysis of control-flow through critical sections, as well as a dynamic analysis to measure the critical section latencies directly.","PeriodicalId":278847,"journal":{"name":"Proceedings of the 5th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis","volume":"68 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-06-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Iceberg: a tool for static analysis of Java critical sections\",\"authors\":\"Michael D. Shah, Samuel Z. Guyer\",\"doi\":\"10.1145/2931021.2931025\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"In this paper we present a static analysis tool called Iceberg that helps programmers find potential performance bugs in concurrent Java programs. The focus of our work is on identifying critical sections with high variability in their latency: in most cases they execute quickly, but occasionally they stall, holding a lock for an unusually long time, and preventing other threads from making progress. The end user experiences such behavior as transient program \\\"hangs\\\". These performance bugs are difficult to find because they are infrequent, transient, and hard to reproduce. This paper describes our initial results running Iceberg on 24 real-world concurrent programs. Our current approach is to identify all of the code that could be executed inside each critical section, including all methods potentially called by it. We collect a number of code metrics that might indicate potential performance problems. These metrics include counts of variable-latency operations such as I/O and memory allocation, as well as overall measurements of critical section size. Using our tool we are able to find critical sections with unusual behavior compared to the other critical sections. Our future work includes a more detailed analysis of control-flow through critical sections, as well as a dynamic analysis to measure the critical section latencies directly.\",\"PeriodicalId\":278847,\"journal\":{\"name\":\"Proceedings of the 5th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis\",\"volume\":\"68 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2016-06-14\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 5th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2931021.2931025\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 5th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2931021.2931025","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

在本文中,我们介绍了一个名为Iceberg的静态分析工具,它可以帮助程序员发现并发Java程序中潜在的性能错误。我们的工作重点是识别在延迟方面具有高可变性的临界区:在大多数情况下,它们执行得很快,但偶尔会停滞,持有锁的时间异常长,并阻止其他线程取得进展。最终用户体验到这样的行为,即瞬态程序“挂起”。这些性能缺陷很难发现,因为它们不常见、短暂且难以重现。本文描述了我们在24个实际并发程序上运行Iceberg的初步结果。我们目前的方法是识别所有可能在每个临界区内执行的代码,包括它可能调用的所有方法。我们收集了许多可能指示潜在性能问题的代码度量。这些指标包括可变延迟操作(如I/O和内存分配)的计数,以及临界区大小的总体测量。使用我们的工具,我们能够找到与其他关键部分相比具有不寻常行为的关键部分。我们未来的工作包括更详细地分析通过临界段的控制流,以及直接测量临界段延迟的动态分析。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Iceberg: a tool for static analysis of Java critical sections
In this paper we present a static analysis tool called Iceberg that helps programmers find potential performance bugs in concurrent Java programs. The focus of our work is on identifying critical sections with high variability in their latency: in most cases they execute quickly, but occasionally they stall, holding a lock for an unusually long time, and preventing other threads from making progress. The end user experiences such behavior as transient program "hangs". These performance bugs are difficult to find because they are infrequent, transient, and hard to reproduce. This paper describes our initial results running Iceberg on 24 real-world concurrent programs. Our current approach is to identify all of the code that could be executed inside each critical section, including all methods potentially called by it. We collect a number of code metrics that might indicate potential performance problems. These metrics include counts of variable-latency operations such as I/O and memory allocation, as well as overall measurements of critical section size. Using our tool we are able to find critical sections with unusual behavior compared to the other critical sections. Our future work includes a more detailed analysis of control-flow through critical sections, as well as a dynamic analysis to measure the critical section latencies directly.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信