Skip to main content

Optimising Darwinian Data Structures on Google Guava

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

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

Included in the following conference series:

Abstract

Data structure selection and tuning is laborious but can vastly improve application performance and memory footprint. In this paper, we demonstrate how artemis, a multiobjective, cloud-based optimisation framework can automatically find optimal, tuned data structures and how it is used for optimising the Guava library. From the proposed solutions that artemis found, \(27.45\%\) of them improve all measures (execution time, CPU usage, and memory consumption). More specifically, artemis managed to improve the memory consumption of Guava by up 13%, execution time by up to 9%, and 4% CPU usage.

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.

    https://github.com/google/guava.

  2. 2.

    https://azure.microsoft.com/en-gb/pricing/.

References

  1. Dan, H., Harman, M., Krinke, J., Li, L., Marginean, A., Wu, F.: Pidgin Crasher: searching for minimised crashing GUI event sequences. In: Goues, C., Yoo, S. (eds.) SSBSE 2014. LNCS, vol. 8636, pp. 253–258. Springer, Cham (2014). doi:10.1007/978-3-319-09940-8_21

    Google Scholar 

  2. Deb, K., Pratap, A., Agarwal, S., Meyarivan, T.A.M.T.: A fast and elitist multiobjective genetic algorithm: Nsga-ii. IEEE Trans. Evol. Comput. 6(2), 182–197 (2002)

    Google Scholar 

  3. Georges, A., Buytaert, D., Eeckhout, L.: Statistically rigorous Java performance evaluation. ACM SIGPLAN Notices 42(10), 57–76 (2007)

    Google Scholar 

  4. Hardin, B.: Companies with “hacking” cultures fail (2016). https://blog.bretthard.in/companies-with-hacking-cultures-fail-b8907a69e3d. Accessed 25 Feb 2017

  5. Kitchenham, B.A., Pfleeger, S.L., Pickard, L.M., Jones, P.W., Hoaglin, D.C., El Emam, K., Rosenberg, J.: Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. Eng. 28(8), 721–734 (2002)

    Article  Google Scholar 

  6. Knuth, D.E.: Structured programming with go to statements. ACM Comput. Surv. 6(4), 261–301 (1974)

    Article  MATH  Google Scholar 

  7. Langdon, W.B., Modat, M., Petke, J., Harman, M.: Improving 3d medical image registration cuda software with genetic programming. In: Proceedings of the 2014 GECCO, pp. 951–958. ACM (2014)

    Google Scholar 

  8. Li, L., Harman, M., Wu, F., Zhang, Y.: SBSelector: search based component selection for budget hardware. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 289–294. Springer, Cham (2015). doi:10.1007/978-3-319-22183-0_25

    Chapter  Google Scholar 

  9. Michail, B., Li, L., Wu, F., Kanthan, L., Lawrence, D., Barr, E.: Darwinian data structure selection. arXiv preprint arXiv:1706.03232 (2017)

  10. Nowling, R.J.: Gotchas with Scala Mutable Collections and Large Data Sets (2015). http://rnowling.github.io/software/engineering/2015/07/01/gotcha-scala-collections.html. Accessed 18 Feb 2017

  11. Shacham, O., Vechev, M., Yahav, E.: Chameleon: adaptive selection of collections. In: ACM Sigplan Notices, vol. 44, pp. 408–418. ACM (2009)

    Google Scholar 

  12. Wu, F., Weimer, W., Harman, M., Jia, Y., Krinke, J.: Deep parameter optimisation. In: Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, pp. 1375–1382. ACM (2015)

    Google Scholar 

  13. Guoqing, X., Arnold, M., Mitchell, N., Rountev, A., Sevitsky, G.: Go with the flow: profiling copies to find runtime bloat. ACM Sigplan Not. 44(6), 419–430 (2009)

    Article  Google Scholar 

  14. Xu, G., Rountev, A.: Precise memory leak detection for Java software using container profiling. In: ACM/IEEE 30th International Conference on Software Engineering, ICSE 2008, pp. 151–160. IEEE (2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michail Basios .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Basios, M., Li, L., Wu, F., Kanthan, L., Barr, E.T. (2017). Optimising Darwinian Data Structures on Google Guava. In: Menzies, T., Petke, J. (eds) Search Based Software Engineering. SSBSE 2017. Lecture Notes in Computer Science(), vol 10452. Springer, Cham. https://doi.org/10.1007/978-3-319-66299-2_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-66299-2_14

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-66298-5

  • Online ISBN: 978-3-319-66299-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics