Burles N, Bowles E, Brownlee A, Attila Kocsis Z, Swan J & Veerapen N (2015) Object-Oriented Genetic Improvement for Improved Energy Consumption in Google Guava. In: Barros M & Labiche Y (eds.) Search-Based Software Engineering. Lecture Notes in Computer Science, 9275. Symposium on Search-Based Software Engineering (SSBSE 2015), Bergamo, Italy, 05.09.2015-07.09.2015. Switzerland: Springer International Publishing, pp. 255-261. http://dx.doi.org/10.1007/978-3-319-22183-0_20; https://doi.org/10.1007/978-3-319-22183-0_20
In this work we use metaheuristic search to improve Google’s Guava library, finding a semantically equivalent version of com.google.common.collect.ImmutableMultimap with reduced energy consumption. Semantics-preserving transformations are found in the source code, using the principle of subtype polymorphism. We introduce a new tool, Opacitor, to deterministically measure the energy consumption, and find that a statistically significant reduction to Guava’s energy consumption is possible. We corroborate these results using Jalen, and evaluate the performance of the metaheuristic search compared to an exhaustive search - finding that the same result is achieved while requiring almost 200 times fewer fitness evaluations. Finally, we compare the metaheuristic search to an independent exhaustive search at each variation point, finding that the metaheuristic has superior performance.
Genetic Improvement; Object-oriented programming; Subclass substitution; Liskov Substitution Principle; Energy profiling