{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,14]],"date-time":"2025-11-14T07:40:51Z","timestamp":1763106051241,"version":"3.41.2"},"reference-count":50,"publisher":"National Library of Serbia","issue":"3","license":[{"start":{"date-parts":[[2025,1,1]],"date-time":"2025-01-01T00:00:00Z","timestamp":1735689600000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["ComSIS","COMPUT SCI INF SYST","COMPUT SCI INFORM SY","COMPUTER SCI INFORM","COMSIS J"],"published-print":{"date-parts":[[2025]]},"abstract":"<jats:p>Programming languages provide the notation for writing computer programs capable of granting our devices the desired functionalities. Even though they may seem intangible, the resulting programs involve an amount of energy consumption, which has an impact on the environment. Some studies on the consumption of programming languages indicate that while being one of the most widely used languages, Python is also one of the most demanding in terms of energy consumption. To provide developers using Python with a set of best practices on how to use it in the most energy-efficient way, this paper presents a study on whether the different ways of programming in Python have an impact on the energy consumption of the resulting programs. We have studied the relationship between Python?s energy consumption and the fact that Python is a very versatile language that allows programs to be compiled and executed in many different ways. From the results obtained in our study, there seems to be a clear relationship between software energy consumption at runtime and: (1) the use of interpreted or compiled Python; (2) the use of dynamically or statically typed variables. Compiling Python code is a good option if it is done using the py compile module. The use of interpreted code seems to decrease energy consumption over compiling using Nuitka. The use of dynamically typed variables seems to decrease considerably the graphics and processor energy consumption. In addition, we have observed that energy consumption is not always directly related to execution time. Sometimes, more power in less time increases consumption, due to the power required.<\/jats:p>","DOI":"10.2298\/csis240228015j","type":"journal-article","created":{"date-parts":[[2025,3,5]],"date-time":"2025-03-05T09:17:15Z","timestamp":1741166235000},"page":"693-726","source":"Crossref","is-referenced-by-count":1,"title":["Empirical analysis of Python\u2019s energy impact: Evidence from real measurements"],"prefix":"10.2298","volume":"22","author":[{"given":"Elisa","family":"Jimenez","sequence":"first","affiliation":[{"name":"Instituto de Tecnolog\u00edas y Sistemas de Informaci\u00f3n Camino de Moledores, Ciudad Real, Spain"}]},{"given":"Alberto","family":"Gordillo","sequence":"additional","affiliation":[{"name":"Instituto de Tecnolog\u00edas y Sistemas de Informaci\u00f3n Camino de Moledores, Ciudad Real, Spain"}]},{"given":"Coral","family":"Calero","sequence":"additional","affiliation":[{"name":"Instituto de Tecnolog\u00edas y Sistemas de Informaci\u00f3n Camino de Moledores, Ciudad Real, Spain"}]},{"suffix":"Ma","given":"\u00c1ngeles","family":"Moraga","sequence":"additional","affiliation":[{"name":"Instituto de Tecnolog\u00edas y Sistemas de Informaci\u00f3n Camino de Moledores, Ciudad Real, Spain"}]},{"given":"F\u00e9lix","family":"Garc\u00eda","sequence":"additional","affiliation":[{"name":"Instituto de Tecnolog\u00edas y Sistemas de Informaci\u00f3n Camino de Moledores, Ciudad Real, Spain"}]}],"member":"1078","reference":[{"key":"ref1","unstructured":"Nuitka (2023), https:\/\/nuitka.net\/index.html"},{"key":"ref2","unstructured":"Py_compile (2023), https:\/\/docs.python.org\/es\/3\/library\/py_compile.html"},{"key":"ref3","unstructured":"Python implementations (2023), https:\/\/wiki.python.org\/moin\/PythonImplementations#Other_Implementations"},{"key":"ref4","unstructured":"TIOBE Index (Feb 2024), https:\/\/www.tiobe.com\/tiobe-index\/"},{"key":"ref5","doi-asserted-by":"crossref","unstructured":"Abdelnabi, A.A.B.: An analytical hierarchical process model to select programming language for novice programmers for data analytics applications. pp. 128-132. IEEE (2019)","DOI":"10.1109\/ACIT47987.2019.8990995"},{"key":"ref6","doi-asserted-by":"crossref","unstructured":"Abdulsalam, S., Lakomski, D., Gu, Q., Jin, T., Zong, Z.: Program energy efficiency: The impact of language, compiler and implementation choices. pp. 1-6. IEEE (2014)","DOI":"10.1109\/IGCC.2014.7039169"},{"key":"ref7","doi-asserted-by":"crossref","unstructured":"Abdulsalam, S., Zong, Z., Gu, Q., Qiu, M.: Using the Greenup, Powerup, and Speedup metrics to evaluate software energy efficiency. In: 2015 Sixth International Green and Sustainable Computing Conference (IGSC). pp. 1-8 (2015)","DOI":"10.1109\/IGCC.2015.7393699"},{"key":"ref8","unstructured":"and\/or its affiliates, O.: GraalPy native-image, https:\/\/www.graalvm.org\/latest\/reference-manual\/python\/native-applications\/"},{"key":"ref9","unstructured":"and\/or its affiliates, O.: GraalPy (2024), https:\/\/www.graalvm.org\/latest\/reference-manual\/python\/"},{"key":"ref10","unstructured":"Anaconda, I.a.o.: AOT compilation (2020), https:\/\/numba.pydata.org\/numba-doc\/dev\/user\/pycc.html"},{"key":"ref11","doi-asserted-by":"crossref","unstructured":"Aycock, J.: A brief history of just-in-time. ACM Comput. Surv. 35(2), 97-113 (Jun 2003), https:\/\/doi.org\/10.1145\/857076.857077, place: New York, NY, USA Publisher: Association for Computing Machinery","DOI":"10.1145\/857076.857077"},{"key":"ref12","unstructured":"BEREC: BEREC Report on Sustainability: Assessing BEREC\u2019s contribution to limiting the impact of the digital sector on the environment. Tech. rep. (Jun 2022), https: \/\/www.berec.europa.eu\/en\/document-categories\/berec\/reports\/ berec-report-on-sustainability-assessing-berecs-contribution-to_ -limiting-the-impact-of-the-digital-sector-on-the-environment"},{"key":"ref13","doi-asserted-by":"crossref","unstructured":"Bhattacharya, P., Neamtiu, I.: Assessing programming language impact on development and maintenance: A study on C and C++. pp. 171-180 (2011)","DOI":"10.1145\/1985793.1985817"},{"key":"ref14","doi-asserted-by":"crossref","unstructured":"Calero, C., Polo, M., Moraga, M.\u0100 .: Investigating the impact on execution time and energy consumption of developing with Spring. Sustainable Computing: Informatics and Systems 32, 100603 (2021), publisher: Elsevier","DOI":"10.1016\/j.suscom.2021.100603"},{"key":"ref15","unstructured":"Carbonnelle, P.: PYPL (Oct 2023), https:\/\/pypl.github.io\/PYPL.html"},{"key":"ref16","unstructured":"Cass, S.: Top Programming Languages 2022 (Aug 2022), https:\/\/spectrum.ieee.org\/top-programming-languages-2022"},{"key":"ref17","doi-asserted-by":"crossref","unstructured":"Connolly Bree, D., \u00d3 Cinn\u00e9ide, M.: Inheritance versus Delegation: which is more energy efficient? pp. 323-329 (Jun 2020)","DOI":"10.1145\/3387940.3392192"},{"key":"ref18","doi-asserted-by":"crossref","unstructured":"Delorey, D.P., Knutson, C.D., Chun, S.: Do programming languages affect productivity? a case study using data from open source projects. pp. 8-8. IEEE (2007)","DOI":"10.1109\/FLOSS.2007.5"},{"key":"ref19","unstructured":"Gordillo, A., Mancebo, J.: ELLIOT: GESTI\u00d3NY AN\u00c1LISIS DE DATOS DE CONSUMO DE SOFTWARE. In: Calidad y sostenibilidad de sistemas de informaci\u00f3n en la pr\u00e1ctica. 1 edn. (Jan 2022)"},{"key":"ref20","unstructured":"Gouy, I.: The Computer Language Benchmarks Game (2008), https: \/\/benchmarksgame-team.pages.debian.net\/benchmarksgame\/ sometimes-people-just-make-up-stuff.html"},{"key":"ref21","unstructured":"Grama, A.: Introduction to parallel computing. Pearson Education (2003)"},{"key":"ref22","unstructured":"Jimenez, E., Gordillo, A., Calero, C., Moraga, M.\u0100 ., Garcia, F.: Repository of energy consumption of Python results, https:\/\/github.com\/GrupoAlarcos\/PythonEnergyConsumptionStudy"},{"key":"ref23","unstructured":"Kaushik, S.: Best Python Interpreters: Choose the Best in 2023 (Nov 2022), https:\/\/hackr.io\/blog\/python-interpreters"},{"key":"ref24","doi-asserted-by":"crossref","unstructured":"Kern, E., Hilty, L.M., Guldner, A., Maksimov, Y.V., Filler, A., Gr\u00f6ger, J., Naumann, S.: Sustainable software products-Towards assessment criteria for resource and energy efficiency. Future Generation Computer Systems 86, 199-210 (2018), publisher: Elsevier","DOI":"10.1016\/j.future.2018.02.044"},{"key":"ref25","doi-asserted-by":"crossref","unstructured":"Krein, J.L., MacLean, A.C., Knutson, C.D., Delorey, D.P., Eggett, D.L.: Impact of programming language fragmentation on developer productivity: a sourceforge empirical study. International Journal of Open Source Software and Processes (IJOSSP) 2(2), 41-61 (2010), publisher: IGI Global","DOI":"10.4018\/jossp.2010040104"},{"key":"ref26","doi-asserted-by":"crossref","unstructured":"Lavazza, L., Morasca, S., Tosi, D.: An empirical study on the effect of programming languages on productivity. pp. 1434-1439 (2016)","DOI":"10.1145\/2851613.2851780"},{"key":"ref27","doi-asserted-by":"crossref","unstructured":"Lima, L.G., Soares-Neto, F., Lieuthier, P., Castor, F., Melfe, G., Fernandes, J.P.: On Haskell and energy efficiency. Journal of Systems and Software 149, 554-580 (2019), https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0164121218302747","DOI":"10.1016\/j.jss.2018.12.014"},{"key":"ref28","doi-asserted-by":"crossref","unstructured":"Mancebo, J., Arriaga, H.O., Garc\u00eda, F., Moraga, M.\u0100 ., Garc\u00eda-Rodr\u00edguez de Guzm\u00e1n, I., Calero, C.: EET: A Device to Support the Measurement of Software Consumption. In: 2018 IEEE\/ACM 6th International Workshop on Green And Sustainable Software (GREENS). pp. 16-22 (2018)","DOI":"10.1145\/3194078.3194081"},{"key":"ref29","doi-asserted-by":"crossref","unstructured":"Mancebo, J., Calero, C., Garcia, F.: GSMP: Green Software Measurement Process. pp. 43-67 (Oct 2021)","DOI":"10.1007\/978-3-030-69970-3_3"},{"key":"ref30","doi-asserted-by":"crossref","unstructured":"Mancebo, J., Calero, C., Garc\u00eda, F., Moraga, M.\u0100., de Guzm\u00e1n, I.G.R.: FEETINGS: Framework for energy efficiency testing to improve environmental goal of the software. Sustainable Computing: Informatics and Systems 30, 100558 (2021), publisher: Elsevier","DOI":"10.1016\/j.suscom.2021.100558"},{"key":"ref31","unstructured":"Merrit, R.: What Is Accelerated Computing? (Sep 2021), https:\/\/blogs.nvidia.com\/blog\/what-is-accelerated-computing\/"},{"key":"ref32","doi-asserted-by":"crossref","unstructured":"Meyerovich, L.A., Rabkin, A.S.: Empirical analysis of programming language adoption. pp. 1-18 (2013)","DOI":"10.1145\/2509136.2509515"},{"key":"ref33","unstructured":"Montanaro, S.: Python dynamic language (Feb 2012), https:\/\/n9.cl\/pyaxq8"},{"key":"ref34","doi-asserted-by":"crossref","unstructured":"Muna, A.: Assessing programming language impact on software development productivity based on mining oss repositories. ACM SIGSOFT Software Engineering Notes 44(1), 36-38 (2022), publisher: ACM New York, NY, USA","DOI":"10.1145\/3310013.3310017"},{"key":"ref35","unstructured":"Oliphant, T.: Numba (2012), https:\/\/numba.pydata.org\/"},{"key":"ref36","doi-asserted-by":"crossref","unstructured":"Pereira, R., Couto, M., Ribeiro, F., Rua, R., Cunha, J., Fernandes, J.P., Saraiva, J.: 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. pp. 256-267. SLE 2017, Association for Computing Machinery, New York, NY, USA (2017), https:\/\/doi.org\/10.1145\/3136014.3136031, event-place: Vancouver, BC, Canada","DOI":"10.1145\/3136014.3136031"},{"key":"ref37","doi-asserted-by":"crossref","unstructured":"Pereira, R., Couto, M., Saraiva, J., Cunha, J., Fernandes, J.P.: The Influence of the Java Collection Framework on Overall Energy Consumption. In: Proceedings of the 5th International Workshop on Green and Sustainable Software. pp. 15-21. GREENS \u201916, Association for Computing Machinery, New York, NY, USA (2016), https:\/\/doi.org\/10.1145\/2896967.2896968, event-place: Austin, Texas","DOI":"10.1145\/2896967.2896968"},{"key":"ref38","doi-asserted-by":"crossref","unstructured":"Phipps, G.: Comparing observed bug and productivity rates for Java and C++. Software: Practice and Experience 29(4), 345-358 (1999), publisher: Wiley Online Library","DOI":"10.1002\/(SICI)1097-024X(19990410)29:4<345::AID-SPE238>3.0.CO;2-C"},{"key":"ref39","doi-asserted-by":"crossref","unstructured":"Pinto, G., Liu, K., Castor, F., Liu, Y.D.: A Comprehensive Study on the Energy Efficiency of Java\u2019s Thread-Safe Collections. In: 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME). pp. 20-31 (2016)","DOI":"10.1109\/ICSME.2016.34"},{"key":"ref40","unstructured":"public: Nuitka options (2023), https:\/\/github.com\/Nuitka\/Nuitka"},{"key":"ref41","unstructured":"python: Numba limitations (2020), https:\/\/numba.readthedocs.io\/en\/stable\/reference\/pysupported.html"},{"key":"ref42","unstructured":"Ralph, P., Nauman, A.: Empirical Standards ACM SIGSOFT (Mar 2021), https:\/\/github.com\/acmsigsoft\/EmpiricalStandards"},{"key":"ref43","doi-asserted-by":"crossref","unstructured":"Redondo, J.M., Ortin, F.: A Comprehensive Evaluation of Common Python Implementations. IEEE Softw. 32(4), 76-84 (Jul 2015), https:\/\/doi.org\/10.1109\/MS.2014.104,place: Washington, DC, USA Publisher: IEEE Computer Society Press","DOI":"10.1109\/MS.2014.104"},{"key":"ref44","doi-asserted-by":"crossref","unstructured":"Reya, N.F., Ahmed, A., Islam, T.Z.M.M.: GreenPy: Evaluating Application-Level Energy Efficiency in Python for Green Computing. Annals of Emerging Technologies in Computing (AETiC) 7(3) (2023)","DOI":"10.33166\/AETiC.2023.03.005"},{"key":"ref45","unstructured":"Shaw, A.: Why is Python so slow? (Jul 2018)"},{"key":"ref46","doi-asserted-by":"crossref","unstructured":"Spinellis, D.: Choosing a programming language. IEEE software 23(4), 62-63 (2006), publisher: IEEE","DOI":"10.1109\/MS.2006.97"},{"key":"ref47","unstructured":"Stinner, V.: The Python Performance Benchmark Suite (2017), https:\/\/pyperformance.readthedocs.io\/"},{"key":"ref48","unstructured":"Team, G.L.: Top 30 Python Libraries To Know in 2024 (Nov 2023), https:\/\/www.mygreatlearning.com\/blog\/open-source-python-libraries\/"},{"key":"ref49","doi-asserted-by":"crossref","unstructured":"Wohlin, C., Runeson, P., Hst, M., Ohlsson, C., Regnel,Wessln, A.: Experimentation in Software Engineering. Springer (2012)","DOI":"10.1007\/978-3-642-29044-2"},{"key":"ref50","doi-asserted-by":"crossref","unstructured":"Wohlin, C., Runeson, P., H\u00f6st, M., Ohlsson, M.C., Regnell, B., Wessl\u00e9n, A.: Experimentation in software engineering. Springer Science & Business Media (2012)","DOI":"10.1007\/978-3-642-29044-2"}],"container-title":["Computer Science and Information Systems"],"original-title":[],"language":"en","deposited":{"date-parts":[[2025,7,18]],"date-time":"2025-07-18T09:16:41Z","timestamp":1752830201000},"score":1,"resource":{"primary":{"URL":"https:\/\/doiserbia.nb.rs\/Article.aspx?ID=1820-02142500015J"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025]]},"references-count":50,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2025]]}},"URL":"https:\/\/doi.org\/10.2298\/csis240228015j","relation":{},"ISSN":["1820-0214","2406-1018"],"issn-type":[{"type":"print","value":"1820-0214"},{"type":"electronic","value":"2406-1018"}],"subject":[],"published":{"date-parts":[[2025]]}}}