达尔文式数据结构选择
软件工程
2018-08-02 v3
摘要
数据结构的选择与调优是一项繁琐的工作,但能极大提升应用程序的性能并减少内存占用。某些数据结构共享通用接口并具有多种实现。我们称之为达尔文式数据结构(DDS),因为我们可以让其实现经历适者生存的筛选。我们引入了 ARTEMIS,这是一个基于云的多目标搜索式优化框架,它能自动找到经调优的最优 DDS(以测试套件为模),随后更改应用程序以使用该 DDS。对于来自 DaCapo 基准测试的5个 Java 项目、8个流行项目以及从 GitHub 均匀采样的30个项目,ARTEMIS 为每一个项目均实现了显著的性能提升。对于执行时间、CPU 使用率和内存消耗,ARTEMIS 为86%(37/43)的项目找到了至少一个能改善所有指标的解决方案。在最佳解决方案中,运行时间、内存和 CPU 使用率的中位数提升分别为4.8%、10.1%和5.1%。这些汇总结果低估了 ARTEMIS 的潜在影响。它所改进的部分基准测试是库或实用工具函数。两个例子是 gson(一个无处不在的 Java 序列化框架)和 xalan(Apache 的 XML 转换工具)。ARTEMIS 使 gson 的内存、运行时间和 CPU 分别提升了16.5%、1%和2.2%;ARTEMIS 使 xalan 的内存消耗降低了23.5%。这些项目的每一个客户端都将从这些性能改进中受益。
引用
@article{arxiv.1706.03232,
title = {Darwinian Data Structure Selection},
author = {Michail Basios and Lingbo Li and Fan Wu and Leslie Kanthan and Earl Barr},
journal= {arXiv preprint arXiv:1706.03232},
year = {2018}
}
备注
11 pages