src/share/classes/sun/tools/jconsole/SummaryTab.java
Print this page
*** 27,54 ****
import java.awt.*;
import java.io.*;
import java.lang.management.*;
import java.lang.reflect.*;
- import java.net.URL;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import javax.swing.*;
! import javax.swing.event.*;
! import javax.swing.text.*;
import static sun.tools.jconsole.Formatter.*;
- import static sun.tools.jconsole.Resources.*;
import static sun.tools.jconsole.Utilities.*;
@SuppressWarnings("serial")
class SummaryTab extends Tab {
private static final String cpuUsageKey = "cpu";
- private static final String cpuUsageName = getText("CPU Usage");
- private static final String cpuUsageFormat = "CPUUsageFormat";
private static final String newDivider = "<tr><td colspan=4><font size =-1><hr>";
private static final String newTable = "<tr><td colspan=4 align=left><table cellpadding=1>";
private static final String newLeftTable = "<tr><td colspan=2 align=left><table cellpadding=1>";
private static final String newRightTable = "<td colspan=2 align=left><table cellpadding=1>";
--- 27,50 ----
import java.awt.*;
import java.io.*;
import java.lang.management.*;
import java.lang.reflect.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import javax.swing.*;
!
! import sun.tools.jconsole.resources.Messages;
import static sun.tools.jconsole.Formatter.*;
import static sun.tools.jconsole.Utilities.*;
@SuppressWarnings("serial")
class SummaryTab extends Tab {
private static final String cpuUsageKey = "cpu";
private static final String newDivider = "<tr><td colspan=4><font size =-1><hr>";
private static final String newTable = "<tr><td colspan=4 align=left><table cellpadding=1>";
private static final String newLeftTable = "<tr><td colspan=2 align=left><table cellpadding=1>";
private static final String newRightTable = "<td colspan=2 align=left><table cellpadding=1>";
*** 68,78 ****
int nCPUs;
String summary;
}
public static String getTabName() {
! return Resources.getText("SummaryTab.tabName");
}
public SummaryTab(VMPanel vmPanel) {
super(vmPanel, getTabName());
--- 64,74 ----
int nCPUs;
String summary;
}
public static String getTabName() {
! return Messages.SUMMARY_TAB_TAB_NAME;
}
public SummaryTab(VMPanel vmPanel) {
super(vmPanel, getTabName());
*** 81,91 ****
info = new HTMLPane();
setAccessibleName(info, getTabName());
add(new JScrollPane(info));
headerDateTimeFormat =
! getDateTimeFormat("SummaryTab.headerDateTimeFormat");
}
public SwingWorker<?, ?> newSwingWorker() {
return new SwingWorker<Result, Object>() {
public Result doInBackground() {
--- 77,87 ----
info = new HTMLPane();
setAccessibleName(info, getTabName());
add(new JScrollPane(info));
headerDateTimeFormat =
! Formatter.getDateTimeFormat(Messages.SUMMARY_TAB_HEADER_DATE_TIME_FORMAT);
}
public SwingWorker<?, ?> newSwingWorker() {
return new SwingWorker<Result, Object>() {
public Result doInBackground() {
*** 136,178 ****
OperatingSystemMXBean osMBean = proxyClient.getOperatingSystemMXBean();
com.sun.management.OperatingSystemMXBean sunOSMBean =
proxyClient.getSunOperatingSystemMXBean();
append("<tr><td colspan=4>");
! append("<center><b>" + getText("SummaryTab.tabName") + "</b></center>");
String dateTime =
headerDateTimeFormat.format(System.currentTimeMillis());
append("<center>" + dateTime + "</center>");
append(newDivider);
{ // VM info
append(newLeftTable);
! append("Connection name", vmPanel.getDisplayName());
! append("Virtual Machine",
! getText("SummaryTab.vmVersion",
rmBean.getVmName(), rmBean.getVmVersion()));
! append("Vendor", rmBean.getVmVendor());
! append("Name", rmBean.getName());
append(endTable);
append(newRightTable);
result.upTime = rmBean.getUptime();
! append("Uptime", formatTime(result.upTime));
if (sunOSMBean != null) {
result.processCpuTime = sunOSMBean.getProcessCpuTime();
! append("Process CPU time", formatNanoTime(result.processCpuTime));
}
if (cmpMBean != null) {
! append("JIT compiler", cmpMBean.getName());
! append("Total compile time",
cmpMBean.isCompilationTimeMonitoringSupported()
? formatTime(cmpMBean.getTotalCompilationTime())
! : getText("Unavailable"));
} else {
! append("JIT compiler", getText("Unavailable"));
}
append(endTable);
}
append(newDivider);
--- 132,174 ----
OperatingSystemMXBean osMBean = proxyClient.getOperatingSystemMXBean();
com.sun.management.OperatingSystemMXBean sunOSMBean =
proxyClient.getSunOperatingSystemMXBean();
append("<tr><td colspan=4>");
! append("<center><b>" + Messages.SUMMARY_TAB_TAB_NAME + "</b></center>");
String dateTime =
headerDateTimeFormat.format(System.currentTimeMillis());
append("<center>" + dateTime + "</center>");
append(newDivider);
{ // VM info
append(newLeftTable);
! append(Messages.CONNECTION_NAME, vmPanel.getDisplayName());
! append(Messages.VIRTUAL_MACHINE,
! Resources.format(Messages.SUMMARY_TAB_VM_VERSION,
rmBean.getVmName(), rmBean.getVmVersion()));
! append(Messages.VENDOR, rmBean.getVmVendor());
! append(Messages.NAME, rmBean.getName());
append(endTable);
append(newRightTable);
result.upTime = rmBean.getUptime();
! append(Messages.UPTIME, formatTime(result.upTime));
if (sunOSMBean != null) {
result.processCpuTime = sunOSMBean.getProcessCpuTime();
! append(Messages.PROCESS_CPU_TIME, formatNanoTime(result.processCpuTime));
}
if (cmpMBean != null) {
! append(Messages.JIT_COMPILER, cmpMBean.getName());
! append(Messages.TOTAL_COMPILE_TIME,
cmpMBean.isCompilationTimeMonitoringSupported()
? formatTime(cmpMBean.getTotalCompilationTime())
! : Messages.UNAVAILABLE);
} else {
! append(Messages.JIT_COMPILER, Messages.UNAVAILABLE);
}
append(endTable);
}
append(newDivider);
*** 183,206 ****
int tdCount = tmBean.getDaemonThreadCount();
int tpCount = tmBean.getPeakThreadCount();
long ttCount = tmBean.getTotalStartedThreadCount();
String[] strings1 = formatLongs(tlCount, tpCount,
tdCount, ttCount);
! append("Live Threads", strings1[0]);
! append("Peak", strings1[1]);
! append("Daemon threads", strings1[2]);
! append("Total threads started", strings1[3]);
append(endTable);
append(newRightTable);
long clCount = clMBean.getLoadedClassCount();
long cuCount = clMBean.getUnloadedClassCount();
long ctCount = clMBean.getTotalLoadedClassCount();
String[] strings2 = formatLongs(clCount, cuCount, ctCount);
! append("Current classes loaded", strings2[0]);
! append("Total classes loaded", strings2[2]);
! append("Total classes unloaded", strings2[1]);
append(null, "");
append(endTable);
}
append(newDivider);
--- 179,202 ----
int tdCount = tmBean.getDaemonThreadCount();
int tpCount = tmBean.getPeakThreadCount();
long ttCount = tmBean.getTotalStartedThreadCount();
String[] strings1 = formatLongs(tlCount, tpCount,
tdCount, ttCount);
! append(Messages.LIVE_THREADS, strings1[0]);
! append(Messages.PEAK, strings1[1]);
! append(Messages.DAEMON_THREADS, strings1[2]);
! append(Messages.TOTAL_THREADS_STARTED, strings1[3]);
append(endTable);
append(newRightTable);
long clCount = clMBean.getLoadedClassCount();
long cuCount = clMBean.getUnloadedClassCount();
long ctCount = clMBean.getTotalLoadedClassCount();
String[] strings2 = formatLongs(clCount, cuCount, ctCount);
! append(Messages.CURRENT_CLASSES_LOADED, strings2[0]);
! append(Messages.TOTAL_CLASSES_LOADED, strings2[2]);
! append(Messages.TOTAL_CLASSES_UNLOADED, strings2[1]);
append(null, "");
append(endTable);
}
append(newDivider);
*** 208,241 ****
{ // Memory
MemoryUsage u = memoryBean.getHeapMemoryUsage();
append(newLeftTable);
String[] strings1 = formatKByteStrings(u.getUsed(), u.getMax());
! append("Current heap size", strings1[0]);
! append("Maximum heap size", strings1[1]);
append(endTable);
append(newRightTable);
String[] strings2 = formatKByteStrings(u.getCommitted());
! append("Committed memory", strings2[0]);
! append("SummaryTab.pendingFinalization.label",
! getText("SummaryTab.pendingFinalization.value",
! memoryBean.getObjectPendingFinalizationCount()));
append(endTable);
append(newTable);
Collection<GarbageCollectorMXBean> garbageCollectors =
proxyClient.getGarbageCollectorMXBeans();
for (GarbageCollectorMXBean garbageCollectorMBean : garbageCollectors) {
String gcName = garbageCollectorMBean.getName();
long gcCount = garbageCollectorMBean.getCollectionCount();
long gcTime = garbageCollectorMBean.getCollectionTime();
! append("Garbage collector",
! getText("GcInfo", gcName, gcCount,
(gcTime >= 0) ? formatTime(gcTime)
! : getText("Unavailable")),
4);
}
append(endTable);
}
--- 204,237 ----
{ // Memory
MemoryUsage u = memoryBean.getHeapMemoryUsage();
append(newLeftTable);
String[] strings1 = formatKByteStrings(u.getUsed(), u.getMax());
! append(Messages.CURRENT_HEAP_SIZE, strings1[0]);
! append(Messages.MAXIMUM_HEAP_SIZE, strings1[1]);
append(endTable);
append(newRightTable);
String[] strings2 = formatKByteStrings(u.getCommitted());
! append(Messages.COMMITTED_MEMORY, strings2[0]);
! append(Messages.SUMMARY_TAB_PENDING_FINALIZATION_LABEL,
! Messages.SUMMARY_TAB_PENDING_FINALIZATION_VALUE,
! memoryBean.getObjectPendingFinalizationCount());
append(endTable);
append(newTable);
Collection<GarbageCollectorMXBean> garbageCollectors =
proxyClient.getGarbageCollectorMXBeans();
for (GarbageCollectorMXBean garbageCollectorMBean : garbageCollectors) {
String gcName = garbageCollectorMBean.getName();
long gcCount = garbageCollectorMBean.getCollectionCount();
long gcTime = garbageCollectorMBean.getCollectionTime();
! append(Messages.GARBAGE_COLLECTOR,
! Resources.format(Messages.GC_INFO, gcName, gcCount,
(gcTime >= 0) ? formatTime(gcTime)
! : Messages.UNAVAILABLE),
4);
}
append(endTable);
}
*** 245,257 ****
append(newLeftTable);
String osName = osMBean.getName();
String osVersion = osMBean.getVersion();
String osArch = osMBean.getArch();
result.nCPUs = osMBean.getAvailableProcessors();
! append("Operating System", osName + " " + osVersion);
! append("Architecture", osArch);
! append("Number of processors", result.nCPUs+"");
if (pathSeparator == null) {
// Must use separator of remote OS, not File.pathSeparator
// from this local VM. In the future, consider using
// RuntimeMXBean to get the remote system property.
--- 241,253 ----
append(newLeftTable);
String osName = osMBean.getName();
String osVersion = osMBean.getVersion();
String osArch = osMBean.getArch();
result.nCPUs = osMBean.getAvailableProcessors();
! append(Messages.OPERATING_SYSTEM, osName + " " + osVersion);
! append(Messages.ARCHITECTURE, osArch);
! append(Messages.NUMBER_OF_PROCESSORS, result.nCPUs+"");
if (pathSeparator == null) {
// Must use separator of remote OS, not File.pathSeparator
// from this local VM. In the future, consider using
// RuntimeMXBean to get the remote system property.
*** 266,283 ****
formatKByteStrings(sunOSMBean.getTotalPhysicalMemorySize(),
sunOSMBean.getFreePhysicalMemorySize(),
sunOSMBean.getTotalSwapSpaceSize(),
sunOSMBean.getFreeSwapSpaceSize());
! append("Committed virtual memory", kbStrings1[0]);
append(endTable);
append(newRightTable);
! append("Total physical memory", kbStrings2[0]);
! append("Free physical memory", kbStrings2[1]);
! append("Total swap space", kbStrings2[2]);
! append("Free swap space", kbStrings2[3]);
}
append(endTable);
}
--- 262,279 ----
formatKByteStrings(sunOSMBean.getTotalPhysicalMemorySize(),
sunOSMBean.getFreePhysicalMemorySize(),
sunOSMBean.getTotalSwapSpaceSize(),
sunOSMBean.getFreeSwapSpaceSize());
! append(Messages.COMMITTED_VIRTUAL_MEMORY, kbStrings1[0]);
append(endTable);
append(newRightTable);
! append(Messages.TOTAL_PHYSICAL_MEMORY, kbStrings2[0]);
! append(Messages.FREE_PHYSICAL_MEMORY, kbStrings2[1]);
! append(Messages.TOTAL_SWAP_SPACE, kbStrings2[2]);
! append(Messages.FREE_SWAP_SPACE, kbStrings2[3]);
}
append(endTable);
}
*** 288,304 ****
String args = "";
java.util.List<String> inputArguments = rmBean.getInputArguments();
for (String arg : inputArguments) {
args += arg + " ";
}
! append("VM arguments", args, 4);
! append("Class path", rmBean.getClassPath(), 4);
! append("Library path", rmBean.getLibraryPath(), 4);
! append("Boot class path",
rmBean.isBootClassPathSupported()
? rmBean.getBootClassPath()
! : getText("Unavailable"),
4);
append(endTable);
}
} catch (IOException e) {
if (JConsole.isDebug()) {
--- 284,300 ----
String args = "";
java.util.List<String> inputArguments = rmBean.getInputArguments();
for (String arg : inputArguments) {
args += arg + " ";
}
! append(Messages.VM_ARGUMENTS, args, 4);
! append(Messages.CLASS_PATH, rmBean.getClassPath(), 4);
! append(Messages.LIBRARY_PATH, rmBean.getLibraryPath(), 4);
! append(Messages.BOOT_CLASS_PATH,
rmBean.isBootClassPathSupported()
? rmBean.getBootClassPath()
! : Messages.UNAVAILABLE,
4);
append(endTable);
}
} catch (IOException e) {
if (JConsole.isDebug()) {
*** 325,349 ****
private synchronized void append(String str) {
buf.append(str);
}
void append(String label, String value) {
! append(newRow((label != null) ? getText(label) : label, value));
}
private void append(String label, String value, int columnPerRow) {
if (columnPerRow == 4 && pathSeparator != null) {
value = value.replace(pathSeparator,
"<b></b>" + pathSeparator);
}
! append(newRow(getText(label), value, columnPerRow));
! }
!
! void append(String label1, String value1,
! String label2, String value2) {
! append(newRow(getText(label1), value1,
! getText(label2), value2));
}
OverviewPanel[] getOverviewPanels() {
if (overviewPanel == null) {
overviewPanel = new CPUOverviewPanel();
--- 321,339 ----
private synchronized void append(String str) {
buf.append(str);
}
void append(String label, String value) {
! append(newRow(label, value));
}
private void append(String label, String value, int columnPerRow) {
if (columnPerRow == 4 && pathSeparator != null) {
value = value.replace(pathSeparator,
"<b></b>" + pathSeparator);
}
! append(newRow(label, value, columnPerRow));
}
OverviewPanel[] getOverviewPanels() {
if (overviewPanel == null) {
overviewPanel = new CPUOverviewPanel();
*** 353,363 ****
private static class CPUOverviewPanel extends OverviewPanel {
private long prevUpTime, prevProcessCpuTime;
CPUOverviewPanel() {
! super(getText("CPU Usage"), cpuUsageKey, cpuUsageName, Plotter.Unit.PERCENT);
getPlotter().setDecimals(CPU_DECIMALS);
}
public void updateCPUInfo(Result result) {
if (prevUpTime > 0L && result.upTime > prevUpTime) {
--- 343,353 ----
private static class CPUOverviewPanel extends OverviewPanel {
private long prevUpTime, prevProcessCpuTime;
CPUOverviewPanel() {
! super(Messages.CPU_USAGE, cpuUsageKey, Messages.CPU_USAGE, Plotter.Unit.PERCENT);
getPlotter().setDecimals(CPU_DECIMALS);
}
public void updateCPUInfo(Result result) {
if (prevUpTime > 0L && result.upTime > prevUpTime) {
*** 371,386 ****
Math.min(99F,
elapsedCpu / (elapsedTime * 10000F * result.nCPUs));
getPlotter().addValues(result.timeStamp,
Math.round(cpuUsage * Math.pow(10.0, CPU_DECIMALS)));
! getInfoLabel().setText(getText(cpuUsageFormat,
String.format("%."+CPU_DECIMALS+"f", cpuUsage)));
}
this.prevUpTime = result.upTime;
this.prevProcessCpuTime = result.processCpuTime;
}
}
-
-
-
}
--- 361,373 ----
Math.min(99F,
elapsedCpu / (elapsedTime * 10000F * result.nCPUs));
getPlotter().addValues(result.timeStamp,
Math.round(cpuUsage * Math.pow(10.0, CPU_DECIMALS)));
! getInfoLabel().setText(Resources.format(Messages.CPU_USAGE_FORMAT,
String.format("%."+CPU_DECIMALS+"f", cpuUsage)));
}
this.prevUpTime = result.upTime;
this.prevProcessCpuTime = result.processCpuTime;
}
}
}