Mencoba Kinerja (Performance) GraalVM

Baru saja membaca status di media sosial bagaimana sebuah bank memangkas dana milayaran rupiah setelah membuang Java dan beralih ke Rust. Agak sedikit membuat galau melanjutkan belajar Spring Boot. Efesiensi pemakaian memori dari 4 GB ke hanya 8 MB sudah bisa membuat orang-orang berhenti menggunakan Java.

Masuk akal sih kalo sebuah program dijalankan secara native tentu akan lebih cepat dan efisien dibandingkan dengan kode yang hanya dikompilasi untuk platform tertentu. Untuk itu, aku membuat program sederhana melihat kinerja Java apakah seburuk itu.

Kode pengujian seperti di bawah ini. Tidak ada yang istimewa, hanya sebuah looping.

class Main {
	public static void main(String[] args) {
		long startTime = System.currentTimeMillis();

		for (long i = 0; i < 100000000000L; i++) {
			// do nothing
		}

		long endTime = System.currentTimeMillis();
		long elapsedTime = endTime - startTime;

		System.out.println("Elapsed Time (ms): " + elapsedTime);
	}
}

Berikut hasilnya:

java javac native-image
35031 ms 34963 ms 0 ms

Melihat hasilnya, memang cukup mengejutkan. Kode yang dikompilasi ke native malah 0 ms. Sedikit memberi angin segar untuk tetap bertahan menggunakan Java. Saat ini bolehlah kugunakan untuk belajar Spring Boot. Walaupun agak curiga dengan hasilnya. Apa compiler-nya agak sedikit cerdas tahu kalo sedang mengeksekusi perintah kosong, jadi looping-nya diabaikan?

Connect with me:

Comments

Spammy comment will be deleted. Markdown syntax is supported.