Advertisement

Optimising Darwinian Data Structures on Google Guava

  • Michail Basios
  • Lingbo Li
  • Fan Wu
  • Leslie Kanthan
  • Earl T. Barr
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10452)

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.

Keywords

Search-based software engineering Genetic improvement Software analysis and optimisation Multi-objective optimisation 

References

  1. 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. 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. 3.
    Georges, A., Buytaert, D., Eeckhout, L.: Statistically rigorous Java performance evaluation. ACM SIGPLAN Notices 42(10), 57–76 (2007)Google Scholar
  4. 4.
    Hardin, B.: Companies with “hacking” cultures fail (2016). https://blog.bretthard.in/companies-with-hacking-cultures-fail-b8907a69e3d. Accessed 25 Feb 2017
  5. 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)CrossRefGoogle Scholar
  6. 6.
    Knuth, D.E.: Structured programming with go to statements. ACM Comput. Surv. 6(4), 261–301 (1974)CrossRefzbMATHGoogle Scholar
  7. 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. 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 CrossRefGoogle Scholar
  9. 9.
    Michail, B., Li, L., Wu, F., Kanthan, L., Lawrence, D., Barr, E.: Darwinian data structure selection. arXiv preprint arXiv:1706.03232 (2017)
  10. 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. 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. 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. 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)CrossRefGoogle Scholar
  14. 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

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Michail Basios
    • 1
  • Lingbo Li
    • 1
  • Fan Wu
    • 1
  • Leslie Kanthan
    • 1
  • Earl T. Barr
    • 1
  1. 1.Department of Computer ScienceUniversity College LondonLondonUK

Personalised recommendations