3 ms·
Aren't literally all of the above present in Java?
by YawningAngel 8y ago
Aren't literally all of the above present in Java?
- acroback 8y agoNo, we do not want to pay extra to run Java services bloating our measly VMs. Also, we found that it is far easier to get consistent latency with Go code than with Java code. Again, YMMV benchmark for your use case. That said, Java doesn't have go routines, doesn't provide low level access to memory, benchmarking framework is easy to work with in Go. Go gives access to sync Pool which when use correctly gives extremely good gains. One of our measly dual core VMs, can do more than 40k QPS with predictable latency at 99 percentile. With JAVA oom panics were common and latency percentile was all over the place. Sure, you can perhaps tweak the Java code, but it was far easier to do with Go.
- tetha 8y agoThey are. Add around 1.5 gig of necessary heap per feature you use.
- anxiouspete 8y agoLike the others said, our JVM apps would require at least 1GB for the JVM and then 1-4GB for heap, depending on the service. This made the average JVM service require about 4GB of RAM in the container scheduler. Meanwhile our Go services almost never had a working set larger than 256MB and most didn't even need that. We could schedule on average 16 Go services for each JVM service.
- johndubchak 8y agoI love the low overhead.