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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
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
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)
Georges, A., Buytaert, D., Eeckhout, L.: Statistically rigorous Java performance evaluation. ACM SIGPLAN Notices 42(10), 57–76 (2007)
Hardin, B.: Companies with “hacking” cultures fail (2016). https://blog.bretthard.in/companies-with-hacking-cultures-fail-b8907a69e3d. Accessed 25 Feb 2017
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)
Knuth, D.E.: Structured programming with go to statements. ACM Comput. Surv. 6(4), 261–301 (1974)
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)
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
Michail, B., Li, L., Wu, F., Kanthan, L., Lawrence, D., Barr, E.: Darwinian data structure selection. arXiv preprint arXiv:1706.03232 (2017)
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
Shacham, O., Vechev, M., Yahav, E.: Chameleon: adaptive selection of collections. In: ACM Sigplan Notices, vol. 44, pp. 408–418. ACM (2009)
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)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)