abstract = "Data structure selection and tuning is laborious but
can vastly improve an applications 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 86percent
(37/43) of the projects. The median improvement across
the best solutions is 4.8percent, 10.1percent,
5.1percent for runtime, memory and CPU usage.
These aggregate results understate ARTEMIS 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 XML transformation tool. ARTEMIS improves gson
by 16.5percent, 1percent and 2.2percent for memory,
runtime, and CPU; ARTEMIS improves xalan's memory
consumption by 23.5percent. Every client of these
projects will benefit from these performance
improvements.",