Moazam Rajas Sun hosted weblog garbage collection II

Monday Jul 19, 2004

I got an email from Fredrik Paulsson asking about my previous entry concerning "Why can't I allocate 2GB of heap to the JVM on Windows?" Fredrik (and others) have asked about the new /3GB and /PAE switches available in certain releases of Windows (2000/2003, AS/ES).

There is a description of the /3GB switch over at the Microsoft website.

Anyways, the use of this switch does not enable the JVM to allocate more than 2GB heap on Windows. Why? (The Sun VM engineers can step up and correct me here if I'm wrong) The Java Virtual Machine wants a contiguous allocation of memory. The /3GB switch in Windows does not allow that. The use of non-contiguous memory space for the 32bit JVM would most probably cause performance issues. Can you imagine doing garbage collection over 3GB of non-contiguous RAM? *shudder*

So what is the solution? Honestly, if you're going to use big RAM, just upgrade to 64bit CPUs and a 64bit OS. Windows, Linux, and Solaris all come in 64bit versions now.

PS> According to one of the Java GC gods here at Sun, "The Java object heap has to be allocated in contiguous virtual addresses, for implementation reasons." (P.Kessler)

Friday Jul 16, 2004

One of my co-workers, Manish Kapur forwarded me this extremely useful link which shows the Sun Developer Tools support matrix. Whoever finally put this together should be given a medal. I really wish I had this type of matrix back when I worked in the DevTools organization.

Thursday Jul 15, 2004

I had not seen this document on analyzing stack traces until Calvin Austin mentioned it on another weblog. Good base reference information here.

Wednesday Jul 14, 2004

Thread dumps, stack traces, pstacks, and pmaps, these are some of my favo...oh er, nevermind.

A while back I was supposed to write up a detailed guide to reading stack traces for training new engineers, but alas my laziness restricted me to a thin article about debugging thread related hangs instead.

Luckily for me (and the trainees), Rajiv Shivane wrote up a very detailed document on reading stack traces. I've mentioned this link before here, but unfortunately not in the proper context.

Thread dumps and stack traces are probably some of the least understood features of java. Why else would I come across developers who have no clue what do do after looking at an Exception stack trace?

[read more]

Tuesday Jul 13, 2004


For those who are watching Apple right now...
Apple FY 04 third quarter results conference call

Apple today also announced that it will provide live audio streaming of its FY 04 Third Quarter Results Conference Call utilizing the company's popular QuickTime 6 software. The live audio webcast will be accessible through Apple’s web site. Viewers simply need to download a copy of QuickTime 6 in advance from www.apple.com/quicktime to listen to the conference call.

The conference call is scheduled for Wednesday, July 14, 2004, 2:00 p.m. PDT/5:00 p.m. EDT. The call will also be available as a continuous rebroadcast beginning Wednesday July 14 at 5:00 p.m. PDT/8:00 p.m. EDT through Wednesday, July 21 at 5:00 p.m. PDT/8:00 p.m. EDT. The dial in number for the rebroadcast is (719) 457-0820.

Sunday Jul 04, 2004

Stephen Fitch mentioned that the J2SE Internals & Troubleshooting class has become available to the public for $100! This class used to be a Sun Internal only class before and had "Internal Only" stamps all over it. Anyone even mildly interested in Java Internals should take this class, it's simply excellent and provides a very good base of understanding. Internally we've delivered this class to US, Singapore, and Aussie engineers.

J2SE Internals and Troubleshooting

PS> Who exactly is Stephen Fitch? He's the Escalation Manager for J2SE here at Sun. This basically means that we run to him when all hell breaks loose.

Thursday Jul 01, 2004

According to Eric Schrock, it looks like the upcoming release of Solaris Express will have enhancements which will allow pstack to display java frames. [read all about it]

Rendezvous service discovery is now callable from Java. Darwin CVS now contains Java libraries which allow Java clients to access the underlying Rendezvous facilities on Mac OS X Tiger, Windows, and POSIX systems. [link]