Energy Patterns for Web: An Exploratory Study (2401.06482v1)
Abstract: As the energy footprint generated by software is increasing at an alarming rate, understanding how to develop energy-efficient applications has become a necessity. Previous work has introduced catalogs of coding practices, also known as energy patterns. These patterns are yet limited to Mobile or third-party libraries. In this study, we focus on the Web domain--a main source of energy consumption. First, we investigated whether and how Mobile energy patterns could be ported to this domain and found that 20 patterns could be ported. Then, we interviewed six expert web developers from different companies to challenge the ported patterns. Most developers expressed concerns for antipatterns, specifically with functional antipatterns, and were able to formulate guidelines to locate these patterns in the source code. Finally, to quantify the effect of Web energy patterns on energy consumption, we set up an automated pipeline to evaluate two ported patterns: 'Dynamic Retry Delay' (DRD) and 'Open Only When Necessary' (OOWN). With this, we found no evidence that the DRD pattern consumes less energy than its antipattern, while the opposite is true for OOWN. Data and Material: https://doi.org/10.5281/zenodo.8404487
- An empirical study of the impact of two antipatterns, blob and spaghetti code, on program comprehension. In 2011 15Th european conference on software maintenance and reengineering. IEEE, 181–190.
- Mining energy-related practices in robotics software. In 2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR). IEEE, 483–494.
- Anders SG Andrae and Tomas Edler. 2015. On global electricity usage of communication technology: trends to 2030. Challenges 6, 1 (2015), 117–157.
- Cohesive and isolated development with branches. In Fundamental Approaches to Software Engineering: 15th International Conference, FASE 2012, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012, Tallinn, Estonia, March 24-April 1, 2012. Proceedings 15. Springer, 316–331.
- An empirical analysis of the distribution of unit test smells and their impact on software maintenance. In 2012 28th IEEE international conference on software maintenance (ICSM). IEEE, 56–65.
- Reducing energy consumption using genetic improvement. In Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation. 1327–1334.
- Tiago Carçao. 2014. Measuring and visualizing energy consumption within software code. In 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). IEEE, 181–182.
- AVIF contributors. 2023a. AVIF Image format. Retrieved on Oct 2023 from https://avif.io/
- MDN contributors. 2023b. Mozilla Page Visibility API. Retrieved on Oct 2023 from https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
- Luis Cruz and Rui Abreu. 2019. Catalog of energy patterns for mobile applications. Empirical Software Engineering 24 (2019), 2209–2235.
- Do Energy-Oriented Changes Hinder Maintainability?. In 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME). 29–40. https://doi.org/10.1109/ICSME.2019.00013
- Microsoft web API for Batch Processing. Retrieved on Oct 2023 from https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/execute-batch-operations-using-web-api
- BooHoo Developers. 2022. BooHoo. Retrieved on Oct 2023 from https://www.boohoo.com/page/sustainability-guide.html
- Google Developers. 2023. WebP Image format. Retrieved on Oct 2023 from https://developers.google.com/speed/webp
- Arlene Fink. 2003. The survey handbook. sage.
- Adrian Furnham. 1986. Response bias, social desirability and dissimulation. Personality and individual differences 7, 3 (1986), 385–400.
- Software development lifecycle for energy efficiency: techniques and tools. ACM Computing Surveys (CSUR) 52, 4 (2019), 1–33.
- Taher Ahmed Ghaleb. 2019. Software energy measurement at different levels of granularity. In 2019 International Conference on Computer and Information Sciences (ICCIS). IEEE, 1–6.
- Jonathan G Koomey et al. 2007. Estimating total power consumption by servers in the US and the world.
- Young-Woo Kwon and Eli Tilevich. 2013. Reducing the energy consumption of mobile applications behind the scenes. In 2013 IEEE International Conference on Software Maintenance. IEEE, 170–179.
- Where has my battery gone? Finding sensor related energy black holes in smartphone applications. In 2013 IEEE international conference on pervasive Computing and Communications (PerCom). IEEE, 2–10.
- Temperature effect and thermal impact in lithium-ion batteries: A review. Progress in Natural Science: Materials International 28, 6 (2018), 653–666.
- Understanding the impact of object oriented programming and design patterns on energy efficiency. In 2017 Eighth International Green and Sustainable Computing Conference (IGSC). IEEE, 1–6.
- An empirical study of practitioners’ perspectives on green software engineering. In Proceedings of the 38th international conference on software engineering. 237–248.
- Timothy McKay and Patrick Konsor. 2019. Intel Power Gadget. Retrieved on Oct 2023 from https://www.intel.com/content/www/us/en/developer/articles/tool/power-gadget.html
- Jan Monschke. 2019. Garbage collection in source code. Retrieved on Oct 2023 from https://developers.soundcloud.com/blog/garbage-collection-in-redux-applications
- Philippot Olivier. 2022. Greenspector. Retrieved on Oct 2023 from https://greenspector.com/en/which-image-format-to-choose-to-reduce-its-energy-consumption-and-its-environmental-impact/
- What Do Programmers Know about Software Energy Consumption? IEEE Software 33, 3 (2016), 83–89. https://doi.org/10.1109/MS.2015.83
- Energy efficiency across programming languages: how do energy, time, and memory relate?. In Proceedings of the 10th ACM SIGPLAN international conference on software language engineering. 256–267.
- Understanding energy behaviors of thread management constructs. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications. 345–360.
- Replication Package for ‘Energy Patterns for Web: An Exploratory Study’. Retrieved on Jan 2024 from https://doi.org/10.5281/zenodo.8404487
- Haris Ribic and Yu David Liu. 2014. Energy-efficient work-stealing language runtimes. ACM SIGARCH Computer Architecture News 42, 1 (2014), 513–528.
- Andreas Schuler and Gabriele Anderst-Kotsis. 2020. Characterizing energy consumption of third-party api libraries using api utilization profiles. In Proceedings of the 14th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). 1–11.
- Shriram Shanbhag and Sridhar Chimalakonda. 2022. On the Energy Consumption of Different Dataframe Processing Libraries–An Exploratory Study. arXiv preprint arXiv:2209.05258 (2022).
- Towards a Catalog of Energy Patterns in Deep Learning Development. In Proceedings of the 26th International Conference on Evaluation and Assessment in Software Engineering (Gothenburg, Sweden) (EASE ’22). Association for Computing Machinery, New York, NY, USA, 150–159. https://doi.org/10.1145/3530019.3530035
- Impact of developer choices on energy consumption of software on servers. Procedia Computer Science 62 (2015), 385–394.
- Anselm Strauss and Juliet Corbin. 1998. Basics of qualitative research techniques. (1998).
- How developers perceive smells in source code: A replicated study. Information and Software Technology 92 (2017), 223–235.
- Power analysis of embedded software: A first step towards software power minimization. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 2, 4 (1994), 437–445.
- Energy behavior of Java applications from the memory perspective. In Java (TM) Virtual Machine Research and Technology Symposium (JVM 01).
- Philip Walton. 2022. Energy Saver Mode in Chrome Browser. Retrieved Aug 2023 from https://developer.chrome.com/blog/memory-and-energy-saver-mode/
- Aiko Yamashita and Leon Moonen. 2013. Do developers care about code smells? An exploratory survey. In 2013 20th Working Conference on Reverse Engineering (WCRE). 242–251. https://doi.org/10.1109/WCRE.2013.6671299
- Pooja Rani (20 papers)
- Jonas Zellweger (1 paper)
- Veronika Kousadianos (1 paper)
- Timo Kehrer (16 papers)
- Alberto Bacchelli (20 papers)
- Luis Cruz (22 papers)