diff options
Diffstat (limited to 'plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PerformanceMonitorUtil.java')
-rw-r--r-- | plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PerformanceMonitorUtil.java | 280 |
1 files changed, 0 insertions, 280 deletions
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PerformanceMonitorUtil.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PerformanceMonitorUtil.java deleted file mode 100644 index e6f3a1b75..000000000 --- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PerformanceMonitorUtil.java +++ /dev/null @@ -1,280 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -/* - - - */ -package org.eclipse.jem.util; -import java.util.EventObject; - -import org.eclipse.perfmsr.core.IPerformanceMonitor; - -/** - * This is a simplified wrapper to the IPerformanceMonitor that hides it so that the actual plugin can be optional and not required. - * - * <p> - * This class is not meant to be subclassed by clients. - * </p> - * - * @since 1.0.0 - */ -public abstract class PerformanceMonitorUtil { - /** - * Event for PerformanceListener notification. - * - * @since 1.1.0 - */ - public static class PerformanceEvent extends EventObject { - - /** - * Comment for <code>serialVersionUID</code> - * - * @since 1.1.0 - */ - private static final long serialVersionUID = -4680071462750180339L; - - PerformanceEvent(Object source, int step) { - super(source); - snapshowWithTypes = false; - this.step = step; - this.types = 0; // Not set. - } - - PerformanceEvent(Object source, int step, int types) { - super(source); - snapshowWithTypes = true; - this.step = step; - this.types = types; - } - - - /** - * Snapshot with types if <code>true</code>. - * @since 1.1.0 - */ - public final boolean snapshowWithTypes; - - /** - * Step of snapshot - * @since 1.1.0 - */ - public final int step; - - /** - * types of snapshot. - * @since 1.1.0 - */ - public final int types; - } - - /** - * Performance Listener interface - * - * @since 1.1.0 - */ - public interface PerformanceListener { - /** - * Snapshot was called. - * @param event - * - * @since 1.1.0 - */ - public void snapshot(PerformanceEvent event); - } - - private PerformanceListener[] listeners; - - public interface Types { - - /** - * 1 - Write out the performance counters from the operating system. These include working set, peak working set, elapsed time, user time, and - * kernel time. - */ - int OperatingSystemCounters = IPerformanceMonitor.Types.OperatingSystemCounters; - - /** - * 2 - Write out the global performance info. This includes things like the total committed memory for the entire system. - * - * This function depends on the GetPerformanceInfo() function being available in the Windows psapi.dll. This is available in XP but is usually - * not available in Win/2000. If it is not available then this function throws an UnsupportedOperationException. - */ - int GlobalSystemCounters = IPerformanceMonitor.Types.GlobalSystemCounters; - - /** - * 4 - Write out the size of the Java Heap. - */ - int JavaHeapSize = IPerformanceMonitor.Types.JavaHeapSize; - - /** - * 8 - Write out how much of the Java heap is being used. This calls the garbage collector so it may skew timing results. - */ - int JavaHeapUsed = IPerformanceMonitor.Types.JavaHeapUsed; - - /** - * 16 - The plugin startup and size information. - */ - int PluginInfo = IPerformanceMonitor.Types.PluginInfo; - - /** 0xffff - Everything. */ - int All = IPerformanceMonitor.Types.All; - } - - private static PerformanceMonitorUtil sharedMonitor; - - public static PerformanceMonitorUtil getMonitor() { - if (sharedMonitor == null) { - try { - Class.forName("org.eclipse.perfmsr.core.PerfMsrCorePlugin"); // This just tests if the performance plugin is available. Throws //$NON-NLS-1$ - // exception otherwise. - Class presentClass = Class.forName("org.eclipse.jem.util.PresentPerformanceMonitor"); // Get the class we use wrapper it. //$NON-NLS-1$ - sharedMonitor = (PerformanceMonitorUtil) presentClass.newInstance(); - if (!sharedMonitor.isValid()) - sharedMonitor = null; - } catch (RuntimeException e) { - // If any runtime exception, just use the not present one. - } catch (ClassNotFoundException e) { - // If class not found, then plugin not available, so just use the not present one. - } catch (InstantiationException e) { - // Problem instantiating, so just use the not present one. - } catch (IllegalAccessException e) { - // Some illegal access, so just use the not present one. - } - if (sharedMonitor == null) { - // Couldn't get the performance one for some reason. Use not present one instead. - sharedMonitor = new NotPresentPerformanceMonitor(); - } - } - return sharedMonitor; - } - - protected boolean isValid() { - return true; - } - - /** - * Set the variations that are in effect. - * - * @param var - * a comma delimited string of variation numbers - */ - public abstract void setVar(String var); - - /** - * Take a snapshot of some default performance measurements. - * - * @param step - * this identifies the step that the snapshot is for - */ - public final void snapshot(int step) { - doSnapshot(step); - if (listeners != null) - notifySnapshot(new PerformanceEvent(this, step)); - } - - private void notifySnapshot(PerformanceEvent event) { - PerformanceListener[] list = listeners; - for (int i = 0; i < list.length; i++) { - list[i].snapshot(event); - } - } - - /** - * Do the actual snapshot - * @param step - * - * @see #snapshot(int) - * @since 1.1.0 - */ - protected abstract void doSnapshot(int step); - - /** - * Take a snapshot of the selected performance measurements. - * - * @param step - * this identifies the step that the snapshot is for - * - * @param types - * This controls which measurements are selected. It is an or'd together list of the IPerformanceMonitor.Types constants. - * - * @see IPerformanceMonitor.Types - */ - public void snapshot(int step, int types) { - doSnapshot(step, types); - if (listeners != null) - notifySnapshot(new PerformanceEvent(this, step, types)); - } - - /** - * Do the actual snapshot - * @param step - * - * @see #snapshot(int, int) - * @since 1.1.0 - */ - protected abstract void doSnapshot(int step, int types); - - /** - * Add listener to list. - * @param listener - * - * @since 1.1.0 - */ - public void addPerformanceListener(PerformanceListener listener) { - if (findListener(listener) != -1) - return; - PerformanceListener[] newList = new PerformanceListener[listeners != null ? listeners.length+1 : 1]; - if (listeners != null) - System.arraycopy(listeners, 0, newList, 0, listeners.length); - newList[newList.length-1] = listener; - listeners = newList; - } - - private int findListener(PerformanceListener listener) { - if (listeners != null) { - for (int i = 0; i < listeners.length; i++) { - if (listeners[i] == listener) - return i; - } - } - return -1; - } - - /** - * Remove the listener from the list. - * @param listener - * - * @since 1.1.0 - */ - public void removePerformanceListener(PerformanceListener listener) { - int index = findListener(listener); - if (index != -1) { - if (listeners.length == 1) { - listeners = null; - return; - } - PerformanceListener[] newList = new PerformanceListener[listeners.length-1]; - System.arraycopy(listeners, 0, newList, 0, index); - System.arraycopy(listeners, index+1, newList, index, newList.length-index); - listeners = newList; - } - } - /** - * Upload the results to the server. This causes the file to be - * closed, and the monitor to be placed into the finished state. - * - * This method can only be called if the uploadhost, uploadport and uploaduserid - * have been configured before hand. - * - * @param description an optional description (it can be null) - * - */ - public boolean upload(String description){return false;} -} |