[Del 2] API Performance Tests: Java och Go

Blog Post by Stefan Holmberg

Nu jämför vi Go och Java, med fokus på prestanda och resursanvändning. Här är några viktiga takeaways från videon:

1. Go vs Java - Olika Styrkor

Go är extremt resurseffektivt och kan köras med minimalt minne (t.ex. 16-32 MB RAM). Det är ett statiskt kompilerat språk med låg overhead, vilket gör det perfekt för små, skalbara applikationer.

Java kräver mer minne (kunde inte ens starta med 16-32 MB) men har en JVM som kan optimera koden under körning (t.ex. HotSpot-optimeringar, inlining). I stora applikationer kan detta leda till bättre prestanda än statiskt kompilerade språk.

2. Virtual Threads (Project Loom) i Java

Från Java 21 introducerades virtuella trådar (Project Loom), vilket gör att Java kan hantera tusentals samtidiga anrop effektivt, liknande Go-rutiner.

I Go är parallellitet inbyggt med goroutines, medan Java tidigare behövde @Async eller liknande för att uppnå samma sak.

3. Testresultat

Go klarade ~2145 requests/sekund med låg resursanvändning.

Java (efter optimering) nådde ~914 requests/sekund, men krävde betydligt mer minne och CPU.

Med minimala resurser (16-32 MB RAM) startade inte Java ens, medan Go fungerade utan problem.

4. När Välja Go vs Java?

Välj Go om du behöver:

Extrem resurseffektivitet (mikrotjänster, serverless, embedded).

Enkel parallellitet med goroutines.

Snabb starttid (ingen JVM-startup).

Välj Java om du har:

Stora applikationer där JVM-runtime-optimeringar kan utnyttjas.

Tillgång till mycket RAM/CPU.

Behov av en mogen ekosystem (Spring, Hibernate, m.fl.).

5. Slutsats

"Det beror på" – Båda språken har sina styrkor.

Go vinner i låg-resursmiljöer (containrar, moln).

Java kan vara snabbare i högskaliga system med tillräckligt med resurser.

Rekommenderade kurser inom detta ämne

.

Kubernetes och Docker för utvecklare
© Copyright Systementor AB. All Rights Reserved
Version: 1.0.20250621.3-ea8657e