4 ms·
Java frequently outperforms Go and Rust. It has a far more mature GC than Go and libraries that have no parallel in either (netty, caffeine). Almost every comp
by RhodesianHunter 3y ago
Java frequently outperforms Go and Rust. It has a far more mature GC than Go and libraries that have no parallel in either (netty, caffeine).
Almost every company doing real time/stream processing at the scale of TB/hour or greater is doing so by relying on Apache Kafka, written in Java and Scala.
I've personally been a member of a team that wrote several services (network collectors, observability processing) in Go/Rust/JVM (we preferred Kotlin) in parallel for performance comparisons and found the JVM services to show much better throughput.
Your perspective seems quite outdated. Possibly from before Go or Rust even existed?
- xvilka 3y agoRegarding Kafka (and other Apache Java tools, e.g. Hadoop) - they are often slower[1] than standard Unix tools. [1] https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html https://adamdrake.com/command-line-tools-can-be-235x-faster-...
- xmcqdpt2 3y ago1. Kafka is not really related to Hadoop in any way? Standard unix tools are also way faster than postgres, but we don't use databases or Kafka because of their batch processing performance. 2. Hadoop is used for batch processing and it can be kind of slow, that's true. However the whole point of Hadoop is that you can operate on actually big data, not the 2GB database in the blog post. If it fits on one HDD then you don't need Hadoop and it will just slow you down!
- manigandham 3y agoThat has nothing to do with Kafka, or Java as a language. Distributed big data processing systems need big data to actually be useful. Small data that fits on a single machine can also be processed on a single machine, which will always be faster than using a cluster with orchestration, distribution and network overhead.
- RhodesianHunter 3y agoI don't think you know what Apache is.
- Capricorn2481 3y agoNot a Rust user, but I would like a citation on any context in which Java outperforms Rust
- RhodesianHunter 3y agoAny long lived process with constant allocation of many small or medium sized objects where your primary performance concern is throughput (such as stream processing).