一句话:提出 ARTEMIS,基于多目标搜索自动为 Java 应用选择并调优数据结构实现,显著改善运行时、内存与 CPU。
数据结构选择与调优繁琐,但能显著改善应用性能与内存占用。共享接口却有多种实现的数据结构被称为 Darwinian Data Structures (DDS)。本文提出 ARTEMIS:一个基于云的多目标搜索优化框架,在测试套件约束下自动寻找最优且调优的 DDS,并改写应用以使用该实现。作者在 DaCapo 的 5 个 Java 项目、8 个流行项目及 GitHub 均匀采样的 30 个项目上评估。对于执行时间、CPU 使用率和内存消耗,ARTEMIS 在 86%(37/43)的项目上找到至少一个同时改善所有指标的解;最佳解的中位数提升为运行时 4.8%、内存 10.1%、CPU 5.1%。
Data structure selection and tuning is laborious but can vastly improve an application’s performance and memory footprint. Some data structures share a common interface and enjoy multiple implementations. We call them Darwinian Data Structures (DDS), since we can subject their implementations to survival of the fittest. We introduce ARTEMIS a multi-objective, cloud-based search-based optimisation framework that automatically finds optimal, tuned DDS modulo a test suite, then changes an application to use that DDS. ARTEMIS achieves substantial performance improvements for every project in 5 Java projects from DaCapo benchmark, 8 popular projects and 30 uniformly sampled projects from GitHub. For execution time, CPU usage, and memory consumption, ARTEMIS finds at least one solution that improves all measures for 86% (37/43) of the projects. The median improvement across the best solutions is 4.8%, 10.1%, 5.1% for runtime, memory and CPU usage.