5 ms·
Java gets that wrap from originally being slow to execute, and also having a huge up-front cost to spin up a VM. The first isn't true any more: the Java VM com
by peeters 14y ago
Java gets that wrap from originally being slow to execute, and also having a huge up-front cost to spin up a VM.
The first isn't true any more: the Java VM competes with native code on most benchmarks, and due to its ability to perform runtime optimizations, can occasionally outperform native code.
The second doesn't matter at all for web servers. The cost of starting up the web server is tertiary to uptime and performance. If the thing is going to run for 4 months without going down, who cares all that much if it takes 5 seconds or 5 ms to start up?
- raylu 14y agoI agree with everything you've said here, but I'd like to add something about startup time. If it takes you 5s to start up your server, that's a lot of time you've added to each development iteration. Make a change, restart the server, wait 5s, see if it works/check debug output.
- jbverschoor 14y agoRuby or Python are even worse (slow / big) than java these days. I'm a ruby guy btw..
- henk53 14y agoJava is not that bad at all these days. For years now every iteration of Java EE has become lighter (with respect to the programming model and the startup time of servers).
- henk53 14y agoJBoss EAP 6.0.1 does a cold start in 1.5 seconds on my 2.93Ghz i7. TomEE is some 2 seconds. If even that's too much, there's JRebel which does full hot reloading of pretty much every piece of code you change.
- cunac 14y agotypically you don't stop/start server during development cycle, hot deployment works 99% of cases
- deleted 14y ago[deleted]
- cmircea 14y agoThis is business as usual for me with ASP.NET. IIS Express has to start, then the app to load, then to initialize, then to compile the views. And don't get me started on the Azure Compute Emulator.
- exabrial 14y agoIf you're continuously restarting, you're doing it wrong. That argument became invalid about 4 years ago I think around the time Eclipse Helios was released. Now-a-days, starting a Tomcat or TomEE JVM in debug mode with Eclipse gives you the ability to hot swap probably 95% of your changes. It doesn't supporting adding completely new functions or changing declared fields. JRebel does support this though. As a matter of fact, if you're in a stack frame and you pause the execution pointer with a breakpoint, you can completely change the code of the function and the JVM will discard the current stack frame and then restart the functional call. Essentially, you can rewrite your code, while it's executing, without losing your stack.
- threeseed 14y agoMake a change, restart the server, wait 5s, see if it works/check debug output. Look at JRebel, Play or Nailgun. Most of us aren't waiting 5 seconds before checking output. We just refresh the browser.