Skip to main content

Object-Oriented Genetic Improvement for Improved Energy Consumption in Google Guava

  • Conference paper
  • First Online:
Search-Based Software Engineering (SSBSE 2015)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9275))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Guava v18.0, Apache Collections v4.0.

  2. 2.

    During development we discovered and fixed a bug in the hashCode implementation of the Node class in the com.github.javaparser.JavaParser library.

References

  1. Abbott, R.J.: Object-oriented genetic programming, an initial implementation. In: Proceedings of the 6th International Conference on Computational Intelligence and Natural Computing, North Carolina, USA (2003)

    Google Scholar 

  2. Bruce, W.S.: Automatic generation of object-oriented programs using genetic programming. In: Proceedings of the 1st Annual Conference on Genetic Programming, pp. 267–272. MIT Press, Cambridge (1996)

    Google Scholar 

  3. Chu, P.C., Beasley, J.E.: A genetic algorithm for the generalised assignment problem. Comput. Oper. Res. 24(1), 17–23 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  4. Cohen, M., Zhu, H.S., Senem, E.E., Liu, Y.D.: Energy types. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2012, pp. 831–850. ACM, NY (2012)

    Google Scholar 

  5. Hao, S., Li, D., Halfond, W.G., Govindan, R.: Estimating mobile application energy consumption using program analysis. In: 35th International Conference on Software Engineering, pp. 92–101. IEEE (2013)

    Google Scholar 

  6. Holland, J.H.: Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence. MIT Press, Cambridge (1992)

    Google Scholar 

  7. Liskov, B.: ‘Data abstraction and hierarchy’ (keynote address). SIGPLAN Not. 23(5), 17–34 (1987)

    Article  Google Scholar 

  8. Lucas, S.: Exploiting reflection in object oriented genetic programming. In: Keijzer, M., O’Reilly, U.-M., Lucas, S., Costa, E., Soule, T. (eds.) EuroGP 2004. LNCS, vol. 3003, pp. 369–378. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  9. Manotas, I., Pollock, L., Clause, J.: Seeds: a software engineer’s energy-optimization decision support framework. In: Proceedings of the 36th International Conference on Software Engineering, pp. 503–514. ACM, NY (2014)

    Google Scholar 

  10. Neumann, G., Swan, J., Harman, M., Clark, J.A.: The executable experimental template pattern for the systematic comparison of metaheuristics. In: Proceedings of the 2014 Conference Companion on Genetic and Evolutionary Computation Companion, pp. 1427–1430. ACM (2014)

    Google Scholar 

  11. Noureddine, A., Bourdon, A., Rouvoy, R., Seinturier, L.: Runtime monitoring of software energy hotspots. In: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, pp. 160–169. IEEE (2012)

    Google Scholar 

  12. Oppacher, Y., Oppacher, F., Deugo, D.: Evolving java objects using a grammar-based approach. In: Proceedings of the 11th Annual Conference on Genetic and Evolutionary Computation, pp. 1891–1892. ACM, NY (2009)

    Google Scholar 

  13. Sahin, C., Pollock, L., Clause, J.: How do code refactorings affect energy usage? In: Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 36:1–36:10. ACM, NY (2014)

    Google Scholar 

  14. Swan, J., Burles, N.: Templar - a framework for template-method hyper-heuristics. In: Machado, P., Heywood, M.I., McDermott, J., Castelli, M., García-Sánchez, P., Burelli, P., Risi, S., Sim, K. (eds.) EuroGP 2015. LNCS, vol. 9025, pp. 205–216. Springer, Switzerland (2015)

    Google Scholar 

  15. White, T., Fan, J., Oppacher, F.: Basic object oriented genetic programming. In: Mehrotra, K.G., Mohan, C.K., Oh, J.C., Varshney, P.K., Ali, M. (eds.) IEA/AIE 2011, Part I. LNCS, vol. 6703, pp. 59–68. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

Download references

Acknowledgement

Work funded by UK EPSRC grant EP/J017515/1. Data available at https://github.com/nburles/burles2015object.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nathan Burles .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Burles, N., Bowles, E., Brownlee, A.E.I., Kocsis, Z.A., 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. SSBSE 2015. Lecture Notes in Computer Science(), vol 9275. Springer, Cham. https://doi.org/10.1007/978-3-319-22183-0_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-22183-0_20

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-22182-3

  • Online ISBN: 978-3-319-22183-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics