# GraalVM native image

> Starts in under 100 ms with no warmup at 60% of the JVM’s memory and 0.80× its speed, with builds three times as long. A thread per connection, like Tomcat. Great for Serverless Functions.

## Trade-offs

| Axis | Score |
| --- | --- |
| Throughput | |
| Tail latency | |
| Memory | |
| Velocity | |
| Resilience | |
| Operability | |

## Frameworks

- [Spring Boot](https://wiki.playquorum.dev/frameworks/spring-boot.md)
- [Quarkus](https://wiki.playquorum.dev/frameworks/quarkus.md)

## Engineering terms

- [Cold start](https://wiki.playquorum.dev/glossary/cold-start.md)
- [JIT warmup](https://wiki.playquorum.dev/glossary/jit-warmup.md)
- [Thread pool](https://wiki.playquorum.dev/glossary/thread-pool.md)

## Facts

GraalVM native image
- **Language:** Java
- **Concurrency:** A thread pool
- **Speed:** ×0.8
- **Memory:** 200 MB
- **Startup:** 0 s
- **Warm-up:** —
- **GC pause:** 30 ms
- **Unlocked by:** [GraalVM native image](https://wiki.playquorum.dev/research/graal-native.md)
- **Velocity:** ×0.9
- **Salary:** ×1.05
- **Build:** 6 min

## See also

- [Runtimes and frameworks](https://wiki.playquorum.dev/runtimes.md)
- [Spring Boot](https://wiki.playquorum.dev/frameworks/spring-boot.md)
- [Quarkus](https://wiki.playquorum.dev/frameworks/quarkus.md)

Source: https://wiki.playquorum.dev/runtimes/graal
