Moazam Rajas Sun hosted weblog garbage collection II

Wednesday Jun 30, 2004

This has to be a sign of things to come. Rendezvous has been used by Apple for many things, including automatic discovery of available cluster nodes during distributed compiles.

Rendezvous is a revolutionary networking technology that lets you create an instant network of computers and devices without any configuration, allows the services and capabilities such as file sharing and printing of each device to be registered on the network, and allows these services to be dynamically discoverable by other devices on the network. Rendezvous enables this seamless networking and service discovery over the standard and ubiquitous IP networking protocol. [Rendezvous for Linux, Solaris, and FreeBSD]



As I had mentioned earlier, JFluid is going to be integrated into Suns Java IDE. What I didn't know is that it's already being bundled with the NetBeans 4.0 Development Build. [NetBeans 4.0]


Monday Jun 28, 2004

Here are some of the photos I took while attending both JavaOne and WWDC today.


Misha Dmitriev giving a demo of the JFluid profiling/monitoring tool. It looks like this tool might be worked into the Sun Java IDE soon.


The Project Looking Glass booth drew big crowds and tons of questions. Absolutely amazing demo.


Over at the WWDC side of the party, we were introduced to the new Apple LCD displays. You see that small 15"-17" looking LCD display towards the back? That's a 20" LCD! The new 30" LCD simply dwarfs everything in its presence!!


Welcome to the year 2020. Un-Believable. Apple really has the Bentley Arnage of computer and display setups.


Afterwards, at about 7:30pm Jonathan Schwartz showed up to the JavaOne Blogger Meetup, which probably surprised quite a few people. Jonathan is the President and Chief Operating Officer here at Sun Microsystems. Oh, and he made it official today, he has his own weblog.

I'd really like to thank the folks at Atlassian for setting up the evening event over at The Thirsty Bear, and special thanks go out to Tim Bray and Simon Phipps since I heard they were picking up the tab for the night!
As Calvin Austin mentioned, J2SE 1.5.0 is now known as J2SE 5.0. J2EE will be J2EE 5.0. I'm in the middle about this, but still not 100% sure what I think of the namechange.

JavaOne is pretty packed, it was very interesting watching the horde descend upon the pavilion floor when the clock struck 11. I went over to WWDC, my first visit ever, the pavilion is pretty small compared to JavaOne.

I need to figure out how to steal one of the huge BEA beanbags without anyone noticing.

ObJVMInternalsEntry> The Sun folks (Misha Dmitriev) were showing off JFluid and the built in Java Performance Console tool which will be bundled with J2SE 5.0.

I just got off a 6am con-call with a customer having some problems with Java 2D/Swing performance on multiple monitor systems. Unfortunately we don't have any sort of test case so we're shooting slightly in the dark for now. A quick search for Java 2D optimization and runtime flags brings up some interesting stuff.

From the 1.4.2 Release Notes:

One example of a known problem is that using Direct3D on some small subset of Windows 2000 systems has been known to cause a system crash. You can also try launching your application with the following command-line flag set:

-Dsun.java2d.d3d=false
This forcibly disables our use of Direct3D and avoids any Direct3D-specific problems.
You can also try the following flag:

-Dsun.java2d.ddoffscreen=false
This flag disables our use of DirectDraw and Direct3D for offscreen images (such as the Swing back buffer).
If problems persists, try launching the application with this flag:

-Dsun.java2d.noddraw=true
This flag disables our use of DirectDraw and Direct3D completely and thus avoids any problems you may be seeing associated with our use of those APIs and their respective drivers on your system.
For more information about performance-related flags, see Flags for Controlling Performance and Quality, a section in the High Performance Graphics white paper (also available in PDF format).

* Drawing many simple primitives to an accelerated offscreen surface may result in a JRE crash and corruption of the underlying graphics subsystem due to leakage of GDI resources. This problem is being tracked as bug 4766813. The workaround is to turn off offscreen acceleration:
-Dsun.java2d.ddoffscreen=false


And from the Graphics Performance Improvements white paper:

# -Dsun.java2d.noddraw=true
Setting this flag to true turns off DirectDraw usage, which sometimes helps to get rid of a lot of rendering problems on Win32.

# -Dsun.java2d.ddoffscreen=false
Setting this flag to false turns off DirectDraw offscreen surfaces acceleration by forcing all createVolatileImage calls to become createImage calls, and disables hidden acceleration performed on surfaces created with createImage.

# -Dsun.java2d.ddscale=true
Setting this flag to true enables hardware-accelerated scaling. Hardware scaling is disabled by default to avoid rendering artifacts in existing applications. These rendering artifacts are caused by possible inconsistencies between the scale method that the software scaling operation uses (nearest neighbor) and the different scale methods that video cards use. Certain events that occur while an application is running might cause a scaled image to be rendered partially with hardware scaling operations and partially with software scaling operations, resulting in an inconsistent appearance. For now, you can enable acceleration by setting the ddscale flag to true.

Friday Jun 25, 2004

I should read my e-mail in more detail. :) It looks like I am going to JavaOne, but I'll actually be working at the Sun java.net booth over at the Apple WWDC. You did know that both JavaOne and WWDC are being held in practically the same location and time, right? Here are the times I'll be at the Sun java.net booth over at WWDC:

Monday1:00-5:00
Tuesday11:00-5:00 (!)
Wednesday11:00-3:00

And on a total tangent...I found a picture of my old office at the Sun Menlo Park campus from back when I worked in the Developer Tools organization.

Wednesday Jun 23, 2004

I'm looking forward to this part..it'll actually be interesting to hear what questions are asked of the experts. Original schedule here.

MONDAY

---------------
10:30am - 1pm "Java HotSpot VM, Performance & Scalability"

    Charlie Hunt, Senior Staff Engineer, JWS Performance
    Tim Cramer, Engineering Manager, JWS Performance
    Paul Hohensee, Senior Staff Engineer, HotSpot VM
    Peter Kessler, Senior Staff Engineer, HotSpot VM

12:30pm - 3pm "Language & Core Libraries"

    Neal Gafter, Senior Staff Engineer, javac and core tools
    Joshua Bloch, Distinguished Engineer, Architect, core Java libraries

2:30pm - 5pm "Debugging & Profiling"

    Kelly O'Hair, Senior Staff Engineer, Profiling
    Jim Holmlund, JPDA (Java Platform Debugger Architecture) Technical Lead
    Robert Field, JVMTI (Java VM Tools Interface) Architect
    Alan Bateman, Staff Engineer, Profiling & Debugging
    Tim Bell, Engineer, Debugging

4:30pm - 7pm "JMX and JVM Monitoring & Management"

    Simon Vienot, JMX Engineering Manager
    Eamonn McManus, JMX Spec Lead
    Mandy Chung, VM Monitoring & Management Technical Lead
    Sanjay Radia, J2SE RAS Architect

TUESDAY

----------------
10:30am - 1pm "Networking & Security"

    Jeff Nisewanger, Security Architect
    Jessie Collet, Networking Architect

12:30pm - 3pm "Debugging & Profiling"

    Kelly O'Hair, Senior Staff Engineer, Profiling
    Jim Holmlund, JPDA (Java Platform Debugger Architecture) Technical Lead
    Robert Field, JVMTI (Java VM Tools Interface) Architect
    Alan Bateman, Staff Engineer, Profiling & Debugging
    Tim Bell, Engineer, Debugging

2:30pm - 5pm "Java HotSpot VM, Performance & Scalability"

    Tom Marble, JWS Performance Engineer
    Brian Doherty, JWS Performance Engineer
    Paul Hohensee, Senior Staff Engineer, HotSpot VM
    Steve Dever, Staff Engineer, HotSpot VM
    Ross Knippel, Senior Staff Engineer, HotSpot VM

4:30pm - 7pm "Language & Core Libraries"

    Scott Seligman, Senior Staff Engineer, apt and javadoc tools
    Joe Darcy, Engineer, apt, reflection, numerics

WEDNESDAY

---------------------
10:30am - 1pm "Language & Core Libraries"

    Neal Gafter, Senior Staff Engineer, javac and core tools
    Joshua Bloch, Distinguished Engineer, Architect, core Java libraries
    Joe Darcy, Engineer, apt, reflection, numerics

12:30pm - 3pm "Java HotSpot VM, Performance & Scalability"

    David Dagastine, Staff Engineer, JWS Performance
    Scott Oaks, Senior Staff Engineer, JWS Performance
    Jon Masamitsu, Staff Engineer, HotSpot VM
    Jon Coomes, Staff Engineer, HotSpot VM

2:30pm - 5pm "JMX and JVM Monitoring & Management"

    Simon Vienot, JMX Engineering Manager
    Eamonn McManus, JMX Spec Lead
    Mandy Chung, VM Monitoring & Management Technical Lead

4:30pm - 7pm "Tiger's Children"

    Graham Hamilton, VP & Fellow
    Mark Reinhold, J2SE Chief Engineer
    Thorston Laux, Desktop Java Strategist
    Laurie Tolson, Senior Director J2SE

Tuesday Jun 22, 2004

Looks like I'll be at JavaOne next week, in the java.net booth. I'll post my schedule tomorrow. Oh, and I'll be at the "JavaOne Blogger Meetup" also..

Thursday Jun 17, 2004

Rajiv Shivane has an excellent document on his site titled "Of Thread dumps and stack traces ...". After reading his document, I ventured into some of his other writings and found the following quote here:

"The only flag I could relate to here was the -XX:+PrintCompilation. It is another thing that I have no clue how to interpret the output of this flag either! I vaguely remember reading about this in some javaOne presentation. The presenter had mentioned that it prints the methods which could not be compiled and the user can list the methods which he doesn't want to be compiled in a .hotspot_compiler file. I really wish Sun had documented these flags and their output better, instead of just mentioning "traces methods as compiled" in the VM Options document." [Rajiv Shivane - Of perf degradation with try-finallies and poor VM option docs]

Rajiv, [insert presidential voice] I feel your pain. I really do. I'm working on a document right now which will list out many JVM options and which versions (1.2.2, 1.3.1, etc.) these options are applicable to or not.

But nevertheless, lets get back to the meat of the matter, the question on -XX:+PrintCompilation. I thought that a more detailed explanation of this flags output existed somewhere on the public internet, but maybe I just can't find it today. So I'll make a small attempt to explain the output.

[read full doc here]

Wednesday Jun 16, 2004

There has been alot of talk here at blogs.sun.com about the Blastwave project and how it's helping Solaris x86 and Sparc users. Blastwave is a community run site and is not financially supported by Sun or any other large corporate sponsor (to my knowledge). So why not donate $20 and get the full Blastwave Software Distribution DVD? It includes all packages, for both x86 and Sparc.
I've seen a couple of posts about SunRays here at blogs.sun.com, so I figured I'd post a snippet about them also.

This is an old article I wrote for SysAdmin Magazine. It's a bit dated, but it has one or two good tips. [read article here]

Sunday Jun 13, 2004

This is not much of a report since it seems everything installed without any problems. The only thing that does not work (I think), is the sound card.

After I installed the OS (Build61), I went over to Blastwave and used their pkg-get utility to download goodies such as blackbox, xfce, evolution, gcc, and others.

I do have some concerns, such as:

1.) The OS takes a long time to install..
2.) I typed 'netscape' at the command line and it looks like the default version is 4.78. Wow. I hope we ship a much newer version of Mozilla in the final release.
3.) GNOME crashes when you try to drag a folder or icon anywhere.

Other than that, everything went pretty smooth. Maybe if I get an open couple of days (impossible), I'll try configuring a Solaris 10 Beta desktop as my daily workstation. I still have questions about support for firewire HDs before I do that though.
To follow up on my previous post, I tried booting Solaris 10 x86 Build61 on my Dell Inspiron 4100 today. I did a simple dry-run without actually writing any data to the HD. I was able to confirm that X came up perfectly in 1600x1200x24bit resolution! My next step is to use Partition Magic 7 to reallocate my current HD so I can try a full install.

Saturday Jun 12, 2004

According to the Solaris 9 x86 HCL and Philip Browns Solaris x86 Laptop List, my Dell Inspiron 4100 should probably be able to run the Solaris 10 Beta. I'm not sure if the OS drivers will recognize the UXGA+ 1600x1200 LCD display though. I might just try the install next week sometime and post back on the final results. If it works, I'll have Zones capability on my laptop!

Friday Jun 11, 2004

A couple of years ago I walked into a coworkers office and noticed a shelf full of about two dozen Java books. I was a bit surprised since this coworker (Bob) was a Fortran compiler engineer and didn't have much to do with Java. It turns out that when Java was introduced, Bob decided to buy every single Java book that came out. Obviously this didn't last very long. Today you can walk into practically any bookstore and pick through a selection of hundreds of Java related books. Yet, even with this glut of Java material, there are not many books about Java Internals or debugging Java programs at the runtime level. The newly published book by Alex Kalinosvky, "Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering" attempts to delve into the backend and internals of Java programs.

Kalinovskys book consists of roughly 225 pages of content, is published by SAMS and retails for $29.99. I paid $24.95 or somewhere in that range. I'll try to go through most of the chapters and review them individually. [full book review here]