4 ms·
Java is fast for long-running applications. Once the JIT kicks in, important code is natively compiled. But it does take a long time to start. This is why Java
by m0th87 15y ago
Java is fast for long-running applications. Once the JIT kicks in, important code is natively compiled. But it does take a long time to start. This is why Java is big in the server space, and not so much for desktop applications.
The same holds true for Lucene. It works wonderfully well for most queries. These optimizations are strictly for fuzzy queries, which no one ever used in my deployment at least.
This is the absurdity of performance measurement. Everyone wants to quantify it into a single score. But doing so is like making a 100m track sprinter race a cross country runner. Wtf is your criteria?
- mgkimsal 15y agoI was using it as an example - KDE could have been another, or MySQL, or whatever. The criteria in the Java example - conversations I've had with people directly - was launching and running a desktop app. Things like clicking a menu option and being able to watch the menu draw (< 1 second, but still noticeable). I've sat down with a couple of die-hard Java guys years ago and finally showed them the slowness I would complain about. On my machine - click X, watch Y take a long time, etc. "Oh, that's fine! What are you complaining about?" "Well, when I run a 'native' app, I don't notice any of these slow operations." "Oh, it's fine - that's hardly noticeable at all! Why do you care? Java's fine!" and so on. So... often judgements really are in the eye of the beholder, regardless of what numerical benchmarks show.
- mgkimsal 15y agoAlso, for the record, I've not thought Lucene was slow for any use cases I've needed it for. I've seen benchmarks showing other tech faster in some cases, but never needed that performance.
- timr 15y ago"Java is fast for long-running applications. Once the JIT kicks in, important code is natively compiled. This is why Java is big in the server space, and not so much for desktop applications." Java is a pain in the server space. The memory footprint is bloated, so cache locality tends to suck; it's prone to nasty garbage-collection pauses (hello, latency spikes!); and now instead of one process that can crash or go funky (your code), now you've got two (the JVM and your code). And that's just the tip of the iceberg. I honestly don't know why people started writing server software in Java, but I wish they would stop (I'm looking at you, Apache project). There's absolutely nothing that Java is "good" at that couldn't be done better in other languages...except for allowing teams of mediocre developers to write frameworks for big software bureaucracies.