[Talk] A request of real-world SysAdmins/SysManagers/CIOs...
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