使用CAHPs进行堆快照匹配与排序:一种基于上下文增强的堆路径表示方法,用于前缀树实现精确路径匹配与部分路径匹配
《Proceedings of the ACM on Programming Languages》:Heap-Snapshot Matching and Ordering using CAHPs: A Context-Augmented Heap-Path Representation for Exact and Partial Path Matching using Prefix Trees
【字体:
大
中
小
】
时间:2025年11月07日
来源:Proceedings of the ACM on Programming Languages
编辑推荐:
GraalVM Native Image通过AOT编译优化应用启动性能,但页错误问题阻碍性能提升。现有方法依赖对象匹配,但困难重重。本文提出上下文增强堆路径(CAHP)概念和改进映射方法,实验显示页错误减少2.98倍,启动时间提升1.98倍。
摘要
GraalVM Native Image 越来越被用于优化运行在 Java 虚拟机(JVM)上的应用程序的启动性能,尤其是函数即服务(Function-as-a-Service)和无服务器(Serverless)工作负载。Native Image 采用提前编译(AOT)技术,将 JVM 应用程序编译成二进制文件,该文件包含预初始化堆内存的快照,从而减少初始化时间并提高启动性能。然而,当访问堆快照中的对象时发生的页面错误会限制这种性能提升。相关研究提出了基于性能分析的优化方法,通过根据对象首次被访问的顺序重新排列堆快照中的对象来减少页面错误,这些信息是通过分析同一应用程序的instrumented二进制文件获得的。只有当instrumented二进制文件中的对象能够与optimized二进制文件中的语义等价对象匹配时,这种重新排列才有效。不幸的是,这非常具有挑战性,因为对象没有唯一的标识符,并且同一程序的不同 Native-Image 构建版本之间的堆快照内容并不持久。本研究解决了堆快照匹配问题,提出了一种新的方法来改进不同 Native-Image 应用程序二进制文件中语义等价对象之间的映射。我们引入了“上下文增强堆路径”(Context-Augmented Heap Path,CAHP)的概念——这是一种描述堆快照中对象路径的元素列表。我们的方法以尽可能唯一的方式为每个对象关联一个 CAHP。在不同二进制文件中具有相同 CAHP 的对象被视为语义等价的。此外,由于图像构建过程中的不确定性和其他因素,一些语义等价对象在 instrumented 二进制文件和 optimized 二进制文件中可能具有不同的 CAHP,我们提出了一种方法,为 optimized 二进制文件中每个未匹配的 CAHP 找到最相似的 CAHP,并将这两个对象关联起来。我们将该方法集成到 Native Image 中,利用改进的映射更高效地重新排列堆快照中存储的对象。实验表明,与原始 Native-Image 实现相比,我们的方法显著减少了页面错误(平均减少了 2.98 倍),并大幅提高了启动时间(平均减少了 1.98 倍)。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号