Skip to main content

Investigating the Evolvability of Web Page Load Time

  • Conference paper
  • First Online:
Applications of Evolutionary Computation (EvoApplications 2018)

Abstract

Client-side Javascript execution environments (browsers) allow anonymous functions and event-based programming concepts such as callbacks. We investigate whether a mutate-and-test approach can be used to optimise web page load time in these environments. First, we characterise a web page load issue in a benchmark web page and derive performance metrics from page load event traces. We parse Javascript source code to an AST and make changes to method calls which appear in a web page load event trace. We present an operator based solely on code deletion and evaluate an existing “community-contributed” performance optimising code transform. By exploring Javascript code changes and exploiting combinations of non-destructive changes, we can optimise page load time by 41% in our benchmark web page.

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://developer.chrome.com/devtools.

  2. 2.

    https://github.com/cyrus-and/chrome-remote-interface.

  3. 3.

    http://www.imagemagick.org/Usage/compare/#statistics.

  4. 4.

    https://github.com/vihanb/babel-plugin-loop-optimizer.

  5. 5.

    https://babeljs.io/.

  6. 6.

    The version we used was specifically marked as experimental.

  7. 7.

    Full web app code: https://github.com/mlaval/optimize-angular-app.

  8. 8.

    Demo: https://mlaval.github.io/optimize-angular-app/dev.

References

  1. Selakovic, M., Pradel, M.: Performance issues and optimizations in JavaScript: an empirical study. In: International Conference on Software Engineering (ICSE) (2016)

    Google Scholar 

  2. Langdon, W.B.: Performance of genetic programming optimised Bowtie2 on genome comparison and analytic testing (GCAT) benchmarks. BioData Min. 8(1) (2015)

    Google Scholar 

  3. Cody-Kenny, B., Galván-López, E., Barrett, S.: LocoGP: improving performance by genetic programming java source code. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO) (2015)

    Google Scholar 

  4. Bokhari, M.A., Bruce, B.R., Alexander, B., Wagner, M.: Deep parameter optimisation on android smartphones for energy minimisation. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO), Berlin (2017)

    Google Scholar 

  5. Chang, W.C., Wu, C.S., Chang, C.: Optimizing dynamic web service component composition by using evolutionary algorithms. In: International Conference on Web Intelligence, WIC (2005)

    Google Scholar 

  6. Langdon, W.B.: Which is faster: Bowtie2 GP Bowtie\(>\) Bowtie2\(>\) BWA. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO) (2013)

    Google Scholar 

  7. Binkley, D., Harman, M.: A survey of empirical results on program slicing. Adv. Comput. 62 (2004)

    Google Scholar 

  8. Ye, J., Zhang, C., Ma, L., Yu, H., Zhao, J.: Efficient and precise dynamic slicing for client-side javascript programs. In: International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol. 1 (2016)

    Google Scholar 

  9. Petke, J.: New Operators for non-functional genetic improvement. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO) (2017)

    Google Scholar 

  10. Various: jscodeshift (2017), https://github.com/facebook/jscodeshift

  11. Langdon, W.B., Petke, J.: Software is not fragile. In: Parrend, P., Bourgine, P., Collet, P. (eds.) First Complex Systems Digital Campus World E-Conference 2015. SPC, pp. 203–211. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-45901-1_24

    Chapter  Google Scholar 

  12. Schulte, E., Fry, Z.P., Fast, E., Weimer, W., Forrest, S.: Software mutational robustness. Genetic Programming and Evolvable Machines (GPEM) (2014)

    Google Scholar 

  13. Langdon, W.: Evolving better RNAfold C source code. bioRxiv (2017)

    Google Scholar 

  14. Forrest, S., Nguyen, T., Weimer, W., Goues, C.L.: A genetic programming approach to automated software repair. In: Genetic and Evolutionary Computation Conference (GECCO) (2009)

    Google Scholar 

  15. Basios, M., Li, L., Wu, F., Kanthan, L., Barr, E.T.: Optimising darwinian data structures on Google guava. In: Menzies, T., Petke, J. (eds.) SSBSE 2017. LNCS, vol. 10452, pp. 161–167. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-66299-2_14

    Chapter  Google Scholar 

Download references

Acknowledgements

This research is based upon works supported by Science Foundation Ireland under grant 13/IA/1850 and 13/RC/2094 which is co-funded under the European Regional Development Fund through the Southern & Eastern Regional Operational Programme to Lero - the Irish Software Research Centre (www.lero.ie).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Brendan Cody-Kenny .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Cody-Kenny, B. et al. (2018). Investigating the Evolvability of Web Page Load Time. In: Sim, K., Kaufmann, P. (eds) Applications of Evolutionary Computation. EvoApplications 2018. Lecture Notes in Computer Science(), vol 10784. Springer, Cham. https://doi.org/10.1007/978-3-319-77538-8_51

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-77538-8_51

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-77537-1

  • Online ISBN: 978-3-319-77538-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics