cd benchmark-base
docker build . -t atm6
cd ../jvm
docker build . -t atm6:jvm
cd ../graalvm
docker build . -t atm6:graalvm
For each jvm and graalvm, run following command
docker run -it -p 25565:25565 atm6:jvm
docker run -it -p 25565:25565 atm6:graalvm
when server is fully loaded, profile by spark command
spark profiler --timeout 600
- To make benchmark fair, disable all entity spawning on server.properties
spawn-animals=false
spawn-monsters=false
spawn-npcs=false
tries | tps 5m | memory (GB) | report |
---|---|---|---|
1 | 15.68 | 2.7 | jvm.1 |
2 | 17.07 | 3.3 | jvm.2 |
3 | 17.35 | 1.7 | jvm.3 |
4 | 17.58 | 3.4 | jvm.4 |
5 | 19.37 | 2.6 | jvm.5 |
avg | 17.41 | 2.74 |
tries | tps 5m | memory (GB) | report |
---|---|---|---|
1 | 19.76 | 2.8 | graalvm.1 |
2 | 20 | 1.5 | graalvm.2 |
3 | 20 | 2.6 | graalvm.3 |
4 | 20 | 1.6 | graalvm.4 |
5 | 20 | 3.3 | graalvm.5 |
avg | 19.952 | 2.36 |
- If you want to see report file, use online viewer
- I tried to generate flat map by minecraft:flat on server.properties, but it didn't work
- I know there will be my userid on world file, but I don't think it will cause on security issue.
- Require more complex map that can make tps below 20 on GraalVM