返回
HotLD: A Workload-Aware Method for Global Code-Layout Optimization of Shared Libraries
DOI:10.1145/3769310.png)
摘要
En 中文
动态链接是软件开发生命周期中的一个重要技术。虽然动态链接可以节省内存并增强可维护性,但它也会引入性能开销,并阻碍基于性能分析的代码布局优化技术(profile-guided code layout optimization)在第三方库中的应用。现有工作(如BOLT)可以通过为目标工作负载生成优化的共享库版本来解决这一问题。在线性能分析(PGO)方法(如OCOLOS)可以进一步支持动态代码替换以适应工作负载变化。然而,这些方法存在以下局限:(1)难以进行全局优化,(2)内存消耗高且性能开销大,(3)应用场景受限。为解决这些问题,我们提出HoTLD,一种面向工作负载的共享库全局代码布局优化方法。HoTLD能在引入有限性能和内存开销的前提下提升共享库性能。其核心思想是在离线阶段为每种典型应用工作负载创建专用代码副本,并依据工作负载特性进行全局优化。在运行时,HoTLD监控目标程序的运行工作负载,随后动态选择并链接适当的代码副本。我们通过真实应用实验评估了HoTLD的有效性和效率。结果表明,HoTLD可在毫秒级性能开销下将性能提升高达22.37%。与现有工作相比,HoTLD仅需使用1%-46%的内存即可支持2倍至9倍的工作负载。
Keyword:
Dynamic linking
shared library
profile-guided optimization
workload-aware
期刊
A
IF:
1.8
论文数:
96
被引数:
1.1K

