19 comments
Comment actions Permalink

Hello Sam,

Is it possible to enable 64 bit operations in Idea on a Mac?


Yes, but why would you want to?

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Seems that it would be faster. OS-X VM is 64 bit (I think) and should allow more addressable memory. Am I wrong?

0
Comment actions Permalink

That's an odd intuition...

Do you actually need more heap than you can access using a 32-bit JVM?

And why would moving around a lot of 64-bit object pointers (with double indirection) and an increased per-instance size overhead be faster?

I know the 64-bit JVM has some encoding tricks for object pointers, but that just trades instructions for RAM access.

I've never seen the point in going to 64 bits unless you really need the addressing capacity.


Randall Schulz

0
Comment actions Permalink

I find this discussion both fascinating and tiresome.

Interesting because, first, if you are running on a 64 bit architecture, which I am, then it is actually faster to pass 64 bit points than 32-bit pointers. It takes the same number of instructions to move around 64-bit pointers,  but different registers are used, which are not on the same processing path. Secondly, the whole reason for double indirection is so that moving them around is kept to a minimum. So I believe your hypothesis may hold true for 32-bit machines, (which many of the Intel dual Core processors essentially are), but not for workstation class processors like Xeon, which I am using.

Secondly, maybe I *do* have an application that addresses more than 32-bits memory. You don't know that, nor is it any of your business. I've been doing this about 30 years and remember saying to myself and colleagues when DOS 3.x came out, "Why would anybody ever need more that 640KB (KILO bytes) of RAM?" So the question is mute, and frankly, somewhat demeaning in nature, for which I take offense.

Tiresome, because no one has answered  my question, for which, apparently, requires me to state the obvious: Since it has been established that, yes, IDEA can be run in 64-bit, how does one go about enabling this apparently "useless" and "crippling" feature?

0
Comment actions Permalink

Chill, will you?

I thought the question was running IDEA in 64-bit mode, not your own application.

But hey, take all the offense you want. Apparently it's something you enjoy.


RRS

0
Comment actions Permalink

-- I thought the question was running IDEA in 64-bit mode, not your own application.

Yes, it is. Still waiting for the question to be answered...

Perhaps you should consider checking your arrogance at the door to deprive me of this joy.

0
Comment actions Permalink

I'm pretty sure you're the one with the arrogance problem, not I.

0
Comment actions Permalink

The thing is that using 64-bit pointers everywhere will:
1) increase the amount of heap needed/used
2) decrease hit rate of L1/L2 caches in practical terms

While pointer compression is planned for Sun JVM 7.0, it not there yet,
and I assume that the same thing applies to the Apple VM. Note that BEA
(now Oracle) has had this feature for some time.

In the context of IDEA (AFAIK), the "large" data structures (code
indexes) are implemented as memory-mapped files, which should already be
MRU-mapped by the OS you're using.

As to your actual question - I assume it is possible to run IDEA on a
64-bit VM. One prerequisite would be to disable/remove all native 32-bit
libraries (like the filesystem watcher). Since I'm not on OS X myself, I
cannot give any sequence of steps to follow.

-tt

0
Comment actions Permalink

Hello Sam,

Tiresome, because no one has answered my question, for which,
apparently, requires me to state the obvious: Since it has been
established that, yes, IDEA can be run in 64-bit, how does one go
about enabling this apparently "useless" and "crippling" feature?


http://jetbrains.net/devnet/docs/DOC-197

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Perhaps. But with age comes experience, with experience comes privilege. Not to be arrogant, but to call out young pups who show their feathers a bit too proudly. I would have much preferred a simple answer to my simple question.

Must I provide credentials in order to enable this?
Is someone going to answer the question?  

0
Comment actions Permalink

Thank you Taras. I found what I was looking for at http://developer.apple.com/java/javaleopard.html.


BTW - I haven't benchmarked it, but it is apparently much faster, perhaps 2 or 3x....It is also using the 4-core processors on my machine much more effectively.

As for as anyone else is concerned, I am using copious amounts of memory involving large geospatial databases.

Sam

0
Comment actions Permalink

for all who doesn't use a mac here you can find a quick overview of
apples java implementation in a 64bit world

http://developer.apple.com/java/

0
Comment actions Permalink

What is it called when you presume I am anything that could be considered "young?"

0
Comment actions Permalink

TarasT wrote:

...


While pointer compression is planned for Sun JVM 7.0, it not there yet,
and I assume that the same thing applies to the Apple VM. Note that BEA
(now Oracle) has had this feature for some time.

...


-tt

Interesting. I had gotten the impression that pointer compression was implemented in version 1.6 of the JVM.

RRS

0
Comment actions Permalink

Hi Randall,

I'm pretty sure it's not, mainly by the absence of a command line switch
to enable/disable this behavior.

In addition, implementing pointer compression is a large undertaking
touching almost all parts of HotSpot (I assume). If it was implemented,
I'm pretty sure we would have heard it.

On the recent DevOxx conference in Antwerp, Mark Reinhold from Sun
provided a preliminary feature list for Java 7.0 (planned for 2010).
One of the items is pointer compression:
http://hamletdarcy.blogspot.com/2008/12/java-7-update-from-mark-reinhold-at.html

-tt

0
Comment actions Permalink

"Compressed pointer support was introduced in Java SE 6u6p, which is a performance update."

http://robilad.livejournal.com/37742.html

0
Comment actions Permalink

Sam,
I haven't noticed performance boost with my Mac OS X,  MacBook Pro, with Intel Duo when I ran IDEA in 64 bit mode.
The article seems to imply that 64 bit performance is there for Intel based Macs as well.

Is it possible that some 32 bit libraries in IDEA's library classpath (e.g. Informix JDBC driver used with IDEA SQL plugin ) prevent IDEA from running in 64 bit mode and hence reverts to 32 bit mode by default  ?  I assume a 32 bit library that would effect the 64 bit behaviour of JVM would be using JNI although I don't quite underestand it.

Its very dissappointing to not be able to realize that performance.

If anyone can shed light on this behaviour, including JebBrains, I would appreciate it.

J.

0
Comment actions Permalink

My personal experience from running pre 8 EAPs in 64-bit is that it was noticeably "less snappy".   I can't quantify how much slower for you other than switching back to Java 5 (32 bit) made me a much happier IDEA user.

I wish Apple would have included a 32-bit version of Java 6 as they have both for Java 5.

0
Comment actions Permalink

Actually, this confirms what I wrote in an earlier response. The Intel Core-2 chips are essentially two 32 bit processors running in parallel. This makes the increase in thunking  overheard required by a java vm most likely unacceptable in 64 bit mode. Hope that helps,


Sam

0

Please sign in to leave a comment.