Skip to main content

-d64 JVM option documentation ? what does it do ?

5 replies [Last post]
frenchdrip
Offline
Joined: 2007-11-05
Points: 0

Hi,

Where is the -d64 option documented and what does it do?

Is it for use with the windows-x64 JVM ?

( Its my understanding that it can be specified in Glassfish like -d64 but I can't find any JVM documentation for it so I'm confused. )

Thanks,
FrenchDrip

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
sdo
Offline
Joined: 2005-05-23
Points: 0

>> Glassfish is very well tuned to run with a 32-bit heap [...]

>How could an application be tuned to a 32-bit or 64-bit heap? I was under the impression that nothing changes from the application point of view.

Yes, nothing changes from a language point of view. In a general case, think what you'd have to do to write an application that processes 6GB of data but only has a 3GB heap -- you'd still need to write the app so that it functions well within it's memory constraints since it can't load all the data in at once.

And more specifically, appservers are somewhat different than most Java apps; they do things that standard applications don't, and things that drive the JVM team nuts :-) For example, they pool EJB objects, and they cache JPA data, even though object pooling is generally not considered a good idea in Java. And object pooling certainly can wreak havoc on the garbage collector performance, which is why people who work on appservers have to pay attention to things that other applications probably won't have to.

ricon
Offline
Joined: 2005-03-26
Points: 0
sdo
Offline
Joined: 2005-05-23
Points: 0

The -d64 option means to use the 64-bit version of the JVM. The JVM has three basic configurations: -client, -server (both for 32-bit JVMs) and -d64. In order to use -d64, you have to separately install the 64-bit JVM for your platform (see, e.g., http://java.sun.com/javase/6/webnotes/install/system-configurations.html for supported platforms; the option itself is documented in the online man pages for the java tool). You are correct about the usage of that flag in glassfish.

However, since this is the performance forum, I'll have to mention that the 64-bit JVM will have a performance penalty vs. the 32-bit JVM. Glassfish is very well tuned to run with a 32-bit heap, though Windows itself limits you to a pretty small heap (1.2 GB or so). We generally recommend to use the 32-bit JVM on Unix systems with 3GB or so heap; almost all EE apps we've seen can run in that size (but of course, YMMV). If you can run with a smaller heap on your windows system, then try both JVMs to see what the performance trade-offs are for your environment.

cowwoc
Offline
Joined: 2003-08-24
Points: 0

> However, since this is the performance forum, I'll
> have to mention that the 64-bit JVM will have a
> performance penalty vs. the 32-bit JVM.

Why?

> Glassfish is very well tuned to run with a 32-bit heap [...]

How could an application be tuned to a 32-bit or 64-bit heap? I was under the impression that nothing changes from the application point of view.

mthornton
Offline
Joined: 2003-06-10
Points: 0

> > have to mention that the 64-bit JVM will have a
> > performance penalty vs. the 32-bit JVM.
>
> Why?

References double in size from 32 to 64 bits, so you get less of your data in the processors cache. On the plus side, 64 bit mode has more registers available. Which factor dominates will be application dependent.