Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -117,11 +117,12 @@ private double computePowerInMilliWatts(int componentIndex, long sensorValue, lo
lastUpdateEpoch());
}

static double computePowerInMilliWatts(long newValue, long prevValue, long newMeasureTime, long prevMeasureTime) {
assert newValue > prevValue : "RAPL overflow occurred, need to deal with it!";
assert newMeasureTime > prevMeasureTime : "Not enough time elapsed between measures or order of times problem";
final var msBetweenMeasures = newMeasureTime - prevMeasureTime;
return (double) (newValue - prevValue) / msBetweenMeasures / 1000;
static double computePowerInMilliWatts(long newMicroJoules, long prevMicroJoules, long newMeasureTimeMS,
long prevMeasureTimeMS) {
assert newMicroJoules > prevMicroJoules : "RAPL overflow occurred, need to deal with it!";
assert newMeasureTimeMS > prevMeasureTimeMS : "Not enough time elapsed between measures or order of times problem";
final var msBetweenMeasures = newMeasureTimeMS - prevMeasureTimeMS;
return (double) (newMicroJoules - prevMicroJoules) / msBetweenMeasures;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public String contentAsString() {
@Test
void basicWattComputationShouldWork() {
final var power = IntelRAPLSensor.computePowerInMilliWatts(200, 100, 2000, 1000);
assertEquals((double) 100 / 1000 / 1000, power);
assertEquals((double) 100 / 1000, power);
}

private static class TestIntelRAPLSensor extends IntelRAPLSensor {
Expand Down Expand Up @@ -107,7 +107,7 @@ void wattComputationShouldWork() throws Exception {
assertEquals(1, components.length);
assertEquals(2, raplFile.callCount());
final var interval = raplFile.measureTimeFor(1) - raplFile.measureTimeFor(0);
final var expected = (double) (raplFile.valueAt(1) - raplFile.valueAt(0)) / interval / 1000;
final var expected = (double) (raplFile.valueAt(1) - raplFile.valueAt(0)) / interval;
assertEquals(expected, components[0]);
}

Expand Down
6 changes: 3 additions & 3 deletions cli/src/main/java/net/laprun/sustainability/cli/Power.java
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ private Measure extractPowerConsumption(String applicationName) {

private class ExternalProcessHandler extends BaseProcessHandler {
private long startTime;
private long duration;
private long endTime;

public ExternalProcessHandler(String cmd) {
super("/bin/sh", "-c", stripped(cmd).orElseThrow());
Expand All @@ -119,13 +119,13 @@ public void onExit(int statusCode) {
try {
super.onExit(statusCode);
} finally {
duration = System.currentTimeMillis() - this.startTime;
endTime = System.currentTimeMillis();
measurer.stop();
}
}

public long duration() {
return duration;
return endTime - startTime;
}

private static Optional<String> stripped(String s) {
Expand Down
Loading