# Darwinian Data Structure Selection

**Authors:** Michail Basios, Lingbo Li, Fan Wu, Leslie Kanthan, Earl Barr

arXiv: 1706.03232 · 2018-08-02

## TL;DR

The paper introduces ARTEMIS, a cloud-based optimization framework that automatically selects and tunes data structures to significantly enhance application performance and resource efficiency across various Java projects.

## Contribution

It presents a novel multi-objective search-based approach for automatic data structure selection and tuning, demonstrating substantial performance gains in real-world Java applications.

## Key findings

- At least one solution improves all measures in 86% of projects.
- Median improvements are 4.8% in runtime, 10.1% in memory, 5.1% in CPU.
- Significant improvements in popular libraries like gson and xalan.

## Abstract

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 \emph{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 \emph{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.   These aggregate results understate ARTEMIS's potential impact. Some of the benchmarks it improves are libraries or utility functions. Two examples are gson, a ubiquitous Java serialization framework, and xalan, Apache's XML transformation tool. ARTEMIS improves gson by $16.5$\%, $1\%$ and $2.2\%$ for memory, runtime, and CPU; ARTEMIS improves xalan's memory consumption by $23.5$\%. \emph{Every} client of these projects will benefit from these performance improvements.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1706.03232/full.md

## Figures

13 figures with captions in the complete paper: https://tomesphere.com/paper/1706.03232/full.md

## References

49 references — full list in the complete paper: https://tomesphere.com/paper/1706.03232/full.md

---
Source: https://tomesphere.com/paper/1706.03232