annotate agent/make/marks_notes.html @ 3237:399aa66d375e

Fixed a bug in which the valueEquals method was misused. The method does only check the equality of the node data and not full GVN equality by taking inputs and successors into account.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 27 Jul 2011 14:16:38 -0700
parents a61af66fc99e
children 5ed317b25e23
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
a61af66fc99e Initial load
duke
parents:
diff changeset
2 <html>
a61af66fc99e Initial load
duke
parents:
diff changeset
3 <head>
a61af66fc99e Initial load
duke
parents:
diff changeset
4 <title>Hotspot SA User Interface Notes</title>
a61af66fc99e Initial load
duke
parents:
diff changeset
5 </head>
a61af66fc99e Initial load
duke
parents:
diff changeset
6
a61af66fc99e Initial load
duke
parents:
diff changeset
7 <body>
a61af66fc99e Initial load
duke
parents:
diff changeset
8 <h1>Hotspot SA User Interface Notes</h1>
a61af66fc99e Initial load
duke
parents:
diff changeset
9
a61af66fc99e Initial load
duke
parents:
diff changeset
10 <h2>Workspace and Building</h2>
a61af66fc99e Initial load
duke
parents:
diff changeset
11
a61af66fc99e Initial load
duke
parents:
diff changeset
12 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
13 All the source code for the Serviceability Agent is in
a61af66fc99e Initial load
duke
parents:
diff changeset
14 <code>src/share/vm/agent</code> in the HotSport workspace
a61af66fc99e Initial load
duke
parents:
diff changeset
15 <code>/net/jano.sfbay/export/disk05/hotspot/ws/1.4/sa_baseline</code>
a61af66fc99e Initial load
duke
parents:
diff changeset
16 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
17 You can build the project by typing <code>gnumake</code> in the
a61af66fc99e Initial load
duke
parents:
diff changeset
18 <code>src/share/vm/agent</code> directory.
a61af66fc99e Initial load
duke
parents:
diff changeset
19 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
20 You can also use the default build target using the Ant build file (build.xml). You can download Ant from
a61af66fc99e Initial load
duke
parents:
diff changeset
21 <a href="http://jakarta.apache.org/ant">http://jakarta.apache.org/ant</a>. Documentation for Ant can be
a61af66fc99e Initial load
duke
parents:
diff changeset
22 found at <a href="http://jakarta.apache.org/ant/manual/index.html">http://jakarta.apache.org/ant/manual/index.html</a>
a61af66fc99e Initial load
duke
parents:
diff changeset
23
a61af66fc99e Initial load
duke
parents:
diff changeset
24
a61af66fc99e Initial load
duke
parents:
diff changeset
25 <h2>Running the project</h2>
a61af66fc99e Initial load
duke
parents:
diff changeset
26
a61af66fc99e Initial load
duke
parents:
diff changeset
27 <ul>
a61af66fc99e Initial load
duke
parents:
diff changeset
28 <li><code>java -cp classes sun.jvm.hotspot.HSDB</code>
a61af66fc99e Initial load
duke
parents:
diff changeset
29 <li><code>java -cp classes sun.jvm.hotspot.bugspot.Main</code>
a61af66fc99e Initial load
duke
parents:
diff changeset
30 </ul>
a61af66fc99e Initial load
duke
parents:
diff changeset
31
a61af66fc99e Initial load
duke
parents:
diff changeset
32 <h2>Feedback</h2>
a61af66fc99e Initial load
duke
parents:
diff changeset
33 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
34 Refactoring of package hierarchy. All user interface components should be in
a61af66fc99e Initial load
duke
parents:
diff changeset
35 the ui package. Perhaps: sun.jvm.hotspot.ui.hsdb.Main for the HSDB and
a61af66fc99e Initial load
duke
parents:
diff changeset
36 sun.jvm.hotspot.ui.bugspot.Main for BugSpot.
a61af66fc99e Initial load
duke
parents:
diff changeset
37 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
38 The src\share\vm\agent area seems like a workspace so it should be organized like
a61af66fc99e Initial load
duke
parents:
diff changeset
39 one. In particular, I'd like to suggest the following directory layout:<br>
a61af66fc99e Initial load
duke
parents:
diff changeset
40
a61af66fc99e Initial load
duke
parents:
diff changeset
41 <ul>
a61af66fc99e Initial load
duke
parents:
diff changeset
42 <li>src: All sources that are curently under the sun directory.
a61af66fc99e Initial load
duke
parents:
diff changeset
43 <li>classes: compiled class files.
a61af66fc99e Initial load
duke
parents:
diff changeset
44 <li>lib: Resources like images, icons and jar files.
a61af66fc99e Initial load
duke
parents:
diff changeset
45 <li>docs: Documentation
a61af66fc99e Initial load
duke
parents:
diff changeset
46 <li>deploy: distribution bundles for Java Web Start.
a61af66fc99e Initial load
duke
parents:
diff changeset
47 </ul>
a61af66fc99e Initial load
duke
parents:
diff changeset
48
a61af66fc99e Initial load
duke
parents:
diff changeset
49 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
50 Seems like there is a lot of redundant functionality. Between the HSDB and BugSpot. Perhaps
a61af66fc99e Initial load
duke
parents:
diff changeset
51 this can be consolidated with a <code>javax.swing.Actions</code> architecture.
a61af66fc99e Initial load
duke
parents:
diff changeset
52
a61af66fc99e Initial load
duke
parents:
diff changeset
53 <h2>Tasklist</h2>
a61af66fc99e Initial load
duke
parents:
diff changeset
54
a61af66fc99e Initial load
duke
parents:
diff changeset
55 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
56 <b>Stack memory pane</b>:
a61af66fc99e Initial load
duke
parents:
diff changeset
57 It's one of the more useful JVM debugging tools in the SA. However, it
a61af66fc99e Initial load
duke
parents:
diff changeset
58 doesn't support any interaction with the text; the Memory Panel in BugSpot
a61af66fc99e Initial load
duke
parents:
diff changeset
59 was written afterward (with help from Shannon) and implements proper
a61af66fc99e Initial load
duke
parents:
diff changeset
60 selection, scrolling, and drag-and-drop, but no annotations. I'm not sure how
a61af66fc99e Initial load
duke
parents:
diff changeset
61 to integrate the annotations with the JTable that's being used for the memory
a61af66fc99e Initial load
duke
parents:
diff changeset
62 view; if you have suggestions here please let me know.
a61af66fc99e Initial load
duke
parents:
diff changeset
63 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
64 <b>Integrations with the NetBeans architecture (plug in).</b> See the
a61af66fc99e Initial load
duke
parents:
diff changeset
65 <a href="http://openide.netbeans.org">Netbeans Open APIs homepage</a>
a61af66fc99e Initial load
duke
parents:
diff changeset
66
a61af66fc99e Initial load
duke
parents:
diff changeset
67
a61af66fc99e Initial load
duke
parents:
diff changeset
68 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
69 HSDB: Object Histogram. Column sizes should be sized according the the
a61af66fc99e Initial load
duke
parents:
diff changeset
70 contents. i.e, The size and count columns should be narrow enought to
a61af66fc99e Initial load
duke
parents:
diff changeset
71 handle the largest window. Since there is a lot of data, sorting
a61af66fc99e Initial load
duke
parents:
diff changeset
72 and searching should be implemented.
a61af66fc99e Initial load
duke
parents:
diff changeset
73 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
74
a61af66fc99e Initial load
duke
parents:
diff changeset
75 <h2>Log</h2>
a61af66fc99e Initial load
duke
parents:
diff changeset
76
a61af66fc99e Initial load
duke
parents:
diff changeset
77 <i>Last modified: Tue Feb 05 19:15:12 Pacific Standard Time 2002</i>
a61af66fc99e Initial load
duke
parents:
diff changeset
78 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
79 sun.jvm.hotspot.oops.ObjectHistogram should be the underlying data
a61af66fc99e Initial load
duke
parents:
diff changeset
80 structure for the TableModels. It shouldnt bother with sorting the data -
a61af66fc99e Initial load
duke
parents:
diff changeset
81 the table model should do that. It should implement these methods:
a61af66fc99e Initial load
duke
parents:
diff changeset
82
a61af66fc99e Initial load
duke
parents:
diff changeset
83 <pre>
a61af66fc99e Initial load
duke
parents:
diff changeset
84 public int getSize()
a61af66fc99e Initial load
duke
parents:
diff changeset
85 public ObjectHistogramElement getElementAt(int row);
a61af66fc99e Initial load
duke
parents:
diff changeset
86 </pre>
a61af66fc99e Initial load
duke
parents:
diff changeset
87 <p>
a61af66fc99e Initial load
duke
parents:
diff changeset
88 ObjectHistogramElement should return the String that represents
a61af66fc99e Initial load
duke
parents:
diff changeset
89 the third column
a61af66fc99e Initial load
duke
parents:
diff changeset
90
a61af66fc99e Initial load
duke
parents:
diff changeset
91
a61af66fc99e Initial load
duke
parents:
diff changeset
92 <hr>
a61af66fc99e Initial load
duke
parents:
diff changeset
93 <address><a href="mailto:mark.davidson@sun.com">Mark Davidson</a></address>
a61af66fc99e Initial load
duke
parents:
diff changeset
94 <!-- Created: Mon Jan 28 14:33:47 Pacific Standard Time 2002 -->
a61af66fc99e Initial load
duke
parents:
diff changeset
95 <!-- hhmts start -->
a61af66fc99e Initial load
duke
parents:
diff changeset
96 Last modified: Tue Feb 05 20:05:13 Pacific Standard Time 2002
a61af66fc99e Initial load
duke
parents:
diff changeset
97 <!-- hhmts end -->
a61af66fc99e Initial load
duke
parents:
diff changeset
98 </body>
a61af66fc99e Initial load
duke
parents:
diff changeset
99 </html>