Skip to content
Snippets Groups Projects
Commit 0f6ccf87 authored by Marc Adolf's avatar Marc Adolf
Browse files

added missing files for the (dea)activation monitoring

parent 4745a21d
No related branches found
No related tags found
No related merge requests found
/**
*
*/
package teetime.framework.pipe.measurements;
import teetime.framework.AbstractStage;
/**
* @author marc
*
*/
public class ActivationEntry {
private final AbstractStage stage;
private final long startTime;
private final long endTime;
public ActivationEntry(final AbstractStage stage, final long startTime, final long endTime) {
this.stage = stage;
this.startTime = startTime;
this.endTime = endTime;
}
public AbstractStage getStage() {
return stage;
}
public long getStartTime() {
return startTime;
}
public long getEndTime() {
return endTime;
}
}
package teetime.framework.pipe.measurements;
import teetime.framework.AbstractStage;
public class DeactivationEntry {
private final AbstractStage stage;
private final long startTime;
private final long threadTerminationTime;
private final long endTime;
public DeactivationEntry(final AbstractStage stage, final long startTime, final long threadTerminationTime, final long endTime) {
this.stage = stage;
this.startTime = startTime;
this.threadTerminationTime = threadTerminationTime;
this.endTime = endTime;
}
public AbstractStage getStage() {
return stage;
}
public long getStartTime() {
return startTime;
}
public long getThreadTerminationTime() {
return threadTerminationTime;
}
public long getEndTime() {
return endTime;
}
}
/**
*
*/
package teetime.framework.pipe.measurements;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import teetime.framework.AbstractStage;
/**
* @author marc
*
*/
public class MeasureCollection {
private static final MeasureCollection singleton = new MeasureCollection();
private final Map<AbstractStage, List<ActivationEntry>> activationEntries = new HashMap<AbstractStage, List<ActivationEntry>>();
private final Map<AbstractStage, List<DeactivationEntry>> deactivationEntries = new HashMap<AbstractStage, List<DeactivationEntry>>();
public static synchronized MeasureCollection getCollection() {
return singleton;
}
public void addDeactivationEntry(final DeactivationEntry deactivationEntry) {
AbstractStage stage = deactivationEntry.getStage();
List<DeactivationEntry> entryList = deactivationEntries.get(stage);
if (entryList == null) {
entryList = new LinkedList<DeactivationEntry>();
}
entryList.add(deactivationEntry);
deactivationEntries.put(stage, entryList);
}
public void addActivationEntry(final ActivationEntry activationEntry) {
AbstractStage stage = activationEntry.getStage();
List<ActivationEntry> entryList = activationEntries.get(stage);
if (entryList == null) {
entryList = new LinkedList<ActivationEntry>();
}
entryList.add(activationEntry);
activationEntries.put(stage, entryList);
}
public long averageActivationTime() {
long result = 0;
long count = 0;
for (AbstractStage stage : activationEntries.keySet()) {
for (ActivationEntry entry : activationEntries.get(stage)) {
result += entry.getEndTime() - entry.getStartTime();
count++;
}
}
if (count != 0) {
result = result / count;
}
return result;
}
public long averageDeactivationTime() {
long result = 0;
long count = 0;
for (AbstractStage stage : deactivationEntries.keySet()) {
for (DeactivationEntry entry : deactivationEntries.get(stage)) {
result += entry.getEndTime() - entry.getStartTime();
count++;
}
}
if (count != 0) {
result = result / count;
}
return result;
}
public long averageThreadStopTime() {
long result = 0;
long count = 0;
for (AbstractStage stage : deactivationEntries.keySet()) {
for (DeactivationEntry entry : deactivationEntries.get(stage)) {
result += entry.getEndTime() - entry.getThreadTerminationTime();
count++;
}
}
if (count != 0) {
result = result / count;
}
return result;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment