aoqi@0: aoqi@0: aoqi@0:
aoqi@0:
aoqi@0: All the source code for the Serviceability Agent is in
aoqi@0: src/share/vm/agent
in the HotSport workspace
aoqi@0: /net/jano.sfbay/export/disk05/hotspot/ws/1.4/sa_baseline
aoqi@0:
aoqi@0: You can build the project by typing gnumake
in the
aoqi@0: src/share/vm/agent
directory.
aoqi@0:
aoqi@0: You can also use the default build target using the Ant build file (build.xml). You can download Ant from aoqi@0: http://jakarta.apache.org/ant. Documentation for Ant can be aoqi@0: found at http://jakarta.apache.org/ant/manual/index.html aoqi@0: aoqi@0: aoqi@0:
java -cp classes sun.jvm.hotspot.HSDB
aoqi@0: aoqi@0: Refactoring of package hierarchy. All user interface components should be in aoqi@0: the ui package. Perhaps: sun.jvm.hotspot.ui.hsdb.Main for the HSDB. aoqi@0:
aoqi@0: The src\share\vm\agent area seems like a workspace so it should be organized like
aoqi@0: one. In particular, I'd like to suggest the following directory layout:
aoqi@0:
aoqi@0:
aoqi@0: Seems like there is a lot of redundant functionality. Perhaps
aoqi@0: this can be consolidated with a javax.swing.Actions
architecture.
aoqi@0:
aoqi@0:
aoqi@0: Stack memory pane: aoqi@0: It's one of the more useful JVM debugging tools in the SA. However, it aoqi@0: doesn't support any interaction with the text. aoqi@0:
aoqi@0: Integrations with the NetBeans architecture (plug in). See the aoqi@0: Netbeans Open APIs homepage aoqi@0: aoqi@0: aoqi@0:
aoqi@0: HSDB: Object Histogram. Column sizes should be sized according the the aoqi@0: contents. i.e, The size and count columns should be narrow enought to aoqi@0: handle the largest window. Since there is a lot of data, sorting aoqi@0: and searching should be implemented. aoqi@0:
aoqi@0: aoqi@0:
aoqi@0: sun.jvm.hotspot.oops.ObjectHistogram should be the underlying data aoqi@0: structure for the TableModels. It shouldnt bother with sorting the data - aoqi@0: the table model should do that. It should implement these methods: aoqi@0: aoqi@0:
aoqi@0: public int getSize() aoqi@0: public ObjectHistogramElement getElementAt(int row); aoqi@0:aoqi@0:
aoqi@0: ObjectHistogramElement should return the String that represents aoqi@0: the third column aoqi@0: aoqi@0: aoqi@0: