堆的哪一部分有用?改进堆有效性分析

Vini Kanvar, Uday P. Khedker
{"title":"堆的哪一部分有用?改进堆有效性分析","authors":"Vini Kanvar, Uday P. Khedker","doi":"arxiv-2408.12947","DOIUrl":null,"url":null,"abstract":"With the growing sizes of data structures allocated in heap, understanding\nthe actual use of heap memory is critically important for minimizing cache\nmisses and reclaiming unused memory. A static analysis aimed at this is\ndifficult because the heap locations are unnamed. Using allocation sites to\nname them creates very few distinctions making it difficult to identify\nallocated heap locations that are not used. Heap liveness analysis using access\ngraphs solves this problem by (a) using a storeless model of heap memory by\nnaming the locations with access paths, and (b) representing the unbounded sets\nof access paths (which are regular languages) as finite automata. We improve the scalability and efficiency of heap liveness analysis, and\nreduce the amount of computed heap liveness information by using deterministic\nautomata and by minimizing the inclusion of aliased access paths in the\nlanguage. Practically, our field-, flow-, context-sensitive liveness analysis\non SPEC CPU2006 benchmarks scales to 36 kLoC (existing analysis scales to 10.5\nkLoC) and improves efficiency even up to 99%. For some of the benchmarks, our\ntechnique shows multifold reduction in the computed liveness information,\nranging from 2 to 100 times (in terms of the number of live access paths),\nwithout compromising on soundness.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Which Part of the Heap is Useful? Improving Heap Liveness Analysis\",\"authors\":\"Vini Kanvar, Uday P. Khedker\",\"doi\":\"arxiv-2408.12947\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"With the growing sizes of data structures allocated in heap, understanding\\nthe actual use of heap memory is critically important for minimizing cache\\nmisses and reclaiming unused memory. A static analysis aimed at this is\\ndifficult because the heap locations are unnamed. Using allocation sites to\\nname them creates very few distinctions making it difficult to identify\\nallocated heap locations that are not used. Heap liveness analysis using access\\ngraphs solves this problem by (a) using a storeless model of heap memory by\\nnaming the locations with access paths, and (b) representing the unbounded sets\\nof access paths (which are regular languages) as finite automata. We improve the scalability and efficiency of heap liveness analysis, and\\nreduce the amount of computed heap liveness information by using deterministic\\nautomata and by minimizing the inclusion of aliased access paths in the\\nlanguage. Practically, our field-, flow-, context-sensitive liveness analysis\\non SPEC CPU2006 benchmarks scales to 36 kLoC (existing analysis scales to 10.5\\nkLoC) and improves efficiency even up to 99%. For some of the benchmarks, our\\ntechnique shows multifold reduction in the computed liveness information,\\nranging from 2 to 100 times (in terms of the number of live access paths),\\nwithout compromising on soundness.\",\"PeriodicalId\":501197,\"journal\":{\"name\":\"arXiv - CS - Programming Languages\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2024-08-23\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"arXiv - CS - Programming Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/arxiv-2408.12947\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2408.12947","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

随着堆中分配的数据结构越来越大,了解堆内存的实际使用情况对于最大限度地减少冲突和回收未使用的内存至关重要。由于堆位置是未命名的,因此很难进行这方面的静态分析。使用分配位置来命名它们几乎没有什么区别,因此很难识别未被使用的已分配堆位置。使用访问图的堆有效性分析通过以下方法解决了这一问题:(a) 使用堆内存的无存储模型,用访问路径命名位置;(b) 将无界访问路径集(正则表达式语言)表示为有限自动机。我们提高了堆有效性分析的可扩展性和效率,并通过使用确定性自动机和尽量减少在语言中包含别名访问路径,减少了堆有效性信息的计算量。实际上,我们对 SPEC CPU2006 基准进行的字段、流、上下文敏感的有效性分析可扩展到 36 kLoC(现有分析可扩展到 10.5kLoC),效率甚至提高了 99%。在某些基准测试中,我们的技术显示计算出的有效性信息减少了数倍,从 2 到 100 倍不等(以实时访问路径的数量计算),同时不影响健全性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Which Part of the Heap is Useful? Improving Heap Liveness Analysis
With the growing sizes of data structures allocated in heap, understanding the actual use of heap memory is critically important for minimizing cache misses and reclaiming unused memory. A static analysis aimed at this is difficult because the heap locations are unnamed. Using allocation sites to name them creates very few distinctions making it difficult to identify allocated heap locations that are not used. Heap liveness analysis using access graphs solves this problem by (a) using a storeless model of heap memory by naming the locations with access paths, and (b) representing the unbounded sets of access paths (which are regular languages) as finite automata. We improve the scalability and efficiency of heap liveness analysis, and reduce the amount of computed heap liveness information by using deterministic automata and by minimizing the inclusion of aliased access paths in the language. Practically, our field-, flow-, context-sensitive liveness analysis on SPEC CPU2006 benchmarks scales to 36 kLoC (existing analysis scales to 10.5 kLoC) and improves efficiency even up to 99%. For some of the benchmarks, our technique shows multifold reduction in the computed liveness information, ranging from 2 to 100 times (in terms of the number of live access paths), without compromising on soundness.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
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学术文献互助群
群 号:481959085
Book学术官方微信