1.1. Background Context
Since its introduction approximately thirty years ago by James Gosling and his colleagues at Sun Microsystems (Rauf, 2018), Java has grown to become one of the most extensively used programming languages. It has acquired popularity and become a market leader in almost every programming environment, particularly enterprise applications, server-side Web development, and mobile phone programming (Evans, 2015). According to Floyer (2020), a survey carried out by Wikibon in 2020 showed that 93% of enterprises chose Java as their leading application development platform, with C++ and Python ranking far behind with, respectively, 51% and 29% of respondents. However, Java is still a heavyweight programming language, mainly due to applications processed on the Java Virtual Machine (JVM). Thus, every Java program needs considerable memory and processing resources (GeeksForGeeks, 2019), which creates a financial burden for small and medium enterprises (SMEs) due to its high energy consumption. Understanding this problem, various JVM providers have released improved JVM distributions with reduced runtime memory CPU usage, such as Adopt OpenJDK HotSpot, Amazon Corretto, and Redhat Mandrel. These variants have, to different extent, addressed the original JVM’s issues. The most noticeable JVM distribution, however, is Oracle’s GraalVM, which provides several significant improvements and the ability to compile Java source code into a standalone binary executable program called native image (Graalvm.org, n. d.). Although several studies have been conducted to compare the performance of the GraalVM with other improved JVM distributions, limited work focuses on the sustainability aspect (Ournani et al., 2021). This paper considers both aspects by carrying out practical experiments with different scenarios to explore whether GraalVM is a worthy upgrade for SMEs in terms of performance and energy efficiency.