[Talk] A request of real-world SysAdmins/SysManagers/CIOs...

David Bullock db at dawnbreaks.net
Thu Dec 5 17:04:25 EST 2002

On Thu, 5 Dec 2002, Gary Schmidt wrote:

> Just a quick questions folks:
> What is the current attitude towards running JVMs on production systems
> these days?

The per-JVM overhead on memory is quite high, but if you are talking of
running just a single one as a daemon process and it fits comfortably
into RAM, there is no reason not to do it.  JDK 1.4 introduces significant
enhancements that make it quite a viable platform:

 - memory mapped I/O
 - unix-style 'select' on TCP sockets (was previously 1 
   thread per socket, which was a real point of concern
   for server apps)

And since 1.3 there has been:

 - generational garbage collection (GC)
 - quite a reaonsable just-in-time compiler (JITC)

Java will always pay a little for its GC, runtime bounds checking, 
late binding and reflection features, even after code has been 
recompiled by the JITC (as well as the initial recompilation hit
in the 'startup phase' of the app).  However, after these necesary
impacts are considered, Java is no slouch.  It is impossible to 
generalise about performance compared with alternative approcahes
without understanding the precise problem domain, but most people 
are quite comfortable to say 'performance approaching C++'.

Note that your app will grind to a halt the instant the JVM starts 
getting memory page faults.  On a server-side system it needs to 
be treated with much the same respect as a database instance, and 
given its own block of memory for keeps at startup.

> I've been hiding out as a developer for the last few years, and it may be
> that my prejudices and biases are out of date.

Many people still have bad impressions about Java from several 
years ago, before 1.3, and you won't be alone here.

You might also be interested in Sun's 'support readiness documents':


> I'll be looking at an internal presentation, where they plan to use Java to
> write monitoring software

Hopefully the events they are monitoring are exposed by the 
JVM's core API (you haven't told us if the agents or the server
was being targeted by Java).  Java abstracts a lot of the machine 
(both a benefit and a drawback, depending on what you're doing).


GPG Public Key   http://www.dawnbreaks.net/people/db/public.asc
GPG Fingerprint  B354 F8FA 3E6C 797E 23FA  5815 640C 777B F8E1 5E7F

More information about the Talk mailing list