473,403 Members | 2,284 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,403 software developers and data experts.

what is difference between client, server and hotspot jvms?

Hi

What are the different kinds of JVMs exist and in what respect do they differ.

What is the difference between client, server, classic and hotspot jvms?

thanks,
Naresh
Jul 17 '05 #1
4 7774
Naresh Agarwal wrote:
Hi

What are the different kinds of JVMs exist and in what respect do they differ.

What is the difference between client, server, classic and hotspot jvms?


"Client" and "Server" are actually just types of HotSpot compilers,
optimized for use on "Clients" and "Servers". For more on HotSpot
technology, try the following URL:

http://java.sun.com/products/hotspot/

Brad BARCLAY

--
=-=-=-=-=-=-=-=-=
From the OS/2 WARP v4.5 Desktop of Brad BARCLAY.
The jSyncManager Project: http://www.jsyncmanager.org

Jul 17 '05 #2
na******@informatica.com (Naresh Agarwal) wrote in message news:<2b**************************@posting.google. com>...
Hi

What are the different kinds of JVMs exist and in what respect do they differ.

What is the difference between client, server, classic and hotspot jvms?

The differences generally relate to the way bytecode (used by Java
classes) is translated into native machine code (used by your computer's
processor!)

The nitty-gritty of each method is too much to expect someone to go into
here, but JVM's fall into two very broad categories: ones which interpret
the bytecode, and ones which attempt to 're-write' bytecode sections into
platform specific machine code, so they can be run more efficiently. The
latter option has two strategies: quickly compile each method prior to it
being executed, or analyse the application as it runs, and use this
information to help create tighter and more efficient machine code.
(Quick and crude, versus slow and elegant, if you like!)

For short lived programs, like many client applications, using the first
strategy to quickly speed up the application is often preferred. For
long-life applications, like network server software which can be active
for weeks or months at a time, slower execution during the first few
hours is a small price to pay for enhanced efficiency later on - so the
second strategy is often preferred.

Naturally this is a big topic, and which mode you choose will depend upon
other factors, including the type of work your application does, and how
it does it. The description above is nothing more than a broad overview.
Try searching java.sun.com for more details on each 'mode', including
pro's and con's for each.
-FISH- ><>
Jul 17 '05 #3
thanks for reply.

The second category you are referring to is JIT, right??

Does JIT compilers first compile the *entire* bytecode into machine
code and then starts execution?? If yes, then why these are called as
*Just In Time*?

Also the normal interpreters (first category I guess) also needs to
compile all the bytecode. Thus comilation will be required by both
interpreters as well as JIT compliers. Then why does JIT compilers are
slower then interpreters in certain situations?

thanks,
Naresh
jo*****@merseymail.com (FISH) wrote in message news:<db***********************@posting.google.com >...
na******@informatica.com (Naresh Agarwal) wrote in message news:<2b**************************@posting.google. com>...
Hi

What are the different kinds of JVMs exist and in what respect do they differ.

What is the difference between client, server, classic and hotspot jvms?

The differences generally relate to the way bytecode (used by Java
classes) is translated into native machine code (used by your computer's
processor!)

The nitty-gritty of each method is too much to expect someone to go into
here, but JVM's fall into two very broad categories: ones which interpret
the bytecode, and ones which attempt to 're-write' bytecode sections into
platform specific machine code, so they can be run more efficiently. The
latter option has two strategies: quickly compile each method prior to it
being executed, or analyse the application as it runs, and use this
information to help create tighter and more efficient machine code.
(Quick and crude, versus slow and elegant, if you like!)

For short lived programs, like many client applications, using the first
strategy to quickly speed up the application is often preferred. For
long-life applications, like network server software which can be active
for weeks or months at a time, slower execution during the first few
hours is a small price to pay for enhanced efficiency later on - so the
second strategy is often preferred.

Naturally this is a big topic, and which mode you choose will depend upon
other factors, including the type of work your application does, and how
it does it. The description above is nothing more than a broad overview.
Try searching java.sun.com for more details on each 'mode', including
pro's and con's for each.
-FISH- ><>

Jul 17 '05 #4
na******@informatica.com (Naresh Agarwal) wrote in message news:<2b**************************@posting.google. com>...
thanks for reply.

The second category you are referring to is JIT, right??
It includes JIT, yes, and Hotspot.

Does JIT compilers first compile the *entire* bytecode into machine
code and then starts execution?? If yes, then why these are called as
*Just In Time*?
My understanding is that it compiles each method just prior to its
execution. Uncalled methods will therefore never get translated to
machine code.

Also the normal interpreters (first category I guess) also needs to
compile all the bytecode. Thus comilation will be required by both
interpreters as well as JIT compliers. Then why does JIT compilers are
slower then interpreters in certain situations?


The basic interpreter style JVM's don't actually compile their code,
as such. They operate more akin to interpreters like you'd find with
a scripting language. The difference is that bytecode is much closer
to 'the machine' than lines of source code, so the huge parsing over-
head is not present. When used like this, the JVM is like an
emulator,
in the same way that one might run a Commodore 64 emulator on a PC.

As for why JIT code might run slower - that is a complex issue, with
I suspect many possible answers. One obvious circumstance which would
disadvantage the JIT would be if you had a program with a
straight-line execution path - no loops of any great size or few
methods which get
called repeatedly. Translating a method to native code carries an
overhead. If the method (or indeed loop content) isn't called often
enough to justify that overhead, then the expense of JIT compilation
is never recouped.

In reality, however, none but the most trivial of Java programs are
likely to be so 'straight-line' as to not benfit from compilation to
native code.
-FISH- ><>
Jul 17 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: aurora | last post by:
I have a parser I need to optimize. It has some disk IO and a lot of looping over characters. I used the hotspot profiler to gain insight on optimization options. The methods show up on on the...
58
by: Larry David | last post by:
Ok, first of all, let's get the obvious stuff out of the way. I'm an idiot. So please indulge me for a moment. Consider it an act of "community service".... What does "64bit" mean to your friendly...
1
by: objectref | last post by:
Hi to all folks here, can anyone give me an estimate of the difference in performance between the new versions of C# and C++ 2005 (for .net of course) ? I am a C# programmer and i am very...
3
by: Alan Silver | last post by:
Hello, Sorry if this is a stupid question, but I can't really see much difference between these tow methods according to the scant info in the SDK. Could anyone enlighten me? TIA -- Alan...
14
by: DaTurk | last post by:
I am makeing a Multicast server client setup and was wondering what the difference is between Socket.Connect, and Socket.Bind. It may be a stupid question, but I was just curious. Because I...
12
by: Eric Layman | last post by:
Hi, What's the difference between a normal web element: <input type="text" id="txtname" name="txtname" runat="server"> vs webcontrol text box: <asp:Textbox id="username" Columns="10"...
1
by: bharathreddy | last post by:
This Article gives an introduction to VSTS Team Foundation & fundamental difference between Visual Source Safe (VSS) and VSTS Team Foundation. Team Foundation is a set of tools and technologies...
350
by: Lloyd Bonafide | last post by:
I followed a link to James Kanze's web site in another thread and was surprised to read this comment by a link to a GC: "I can't imagine writing C++ without it" How many of you c.l.c++'ers use...
2
by: JosAH | last post by:
I run my Java programs on a small Linux laptop and today I installed it again on a MS Vista laptop.My linux laptop ran quite a bit faster than my Vista laptop and I decided to find out why. ...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.