All publications
Darwinian Data Structure Selection
Figure 1: Darwinian selection over data structures. Interchangeable implementations compete under real workloads (a); measured fitness — time, CPU, memory — decides descent (b).∎
The origin paper. Programs inherit their data structures from habit — ArrayList because it was there. This work made the choice empirical: evolve real Java programs by substituting interchangeable data structures, run the full test-and-benchmark cycle for every variant, and let measured fitness select the survivors.
Across widely-used open-source Java projects the approach delivered consistent improvements in execution time, CPU usage, and memory — establishing the measure-search-validate loop that every later system in this line, Artemis included, still runs.
Key results
- Consistent time, CPU, and memory gains on real-world Java projects
- Every variant validated by the project's own tests before selection
- The founding method behind Artemis, published before LLMs existed