[Del 2] API Performance Tests: Java och Go

.

2025-06-16

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.