Author: davsclaus
Date: Sun Mar 27 09:16:45 2011
New Revision: 1085896
URL: http://svn.apache.org/viewvc?rev=1085896&view=rev
Log:
CAMEL-3807: Use system current time millis for calculating time diff as adviced
by java performance expert.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SamplingThrottler.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java?rev=1085896&r1=1085895&r2=1085896&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
Sun Mar 27 09:16:45 2011
@@ -20,6 +20,7 @@ import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.management.mbean.ManagedPerformanceCounter;
import org.apache.camel.processor.DelegateAsyncProcessor;
+import org.apache.camel.util.StopWatch;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,21 +58,15 @@ public class InstrumentationProcessor ex
@Override
public boolean process(final Exchange exchange, final AsyncCallback
callback) {
- // use nano time as its more accurate
- // and only record time if stats is enabled
- long start = -1;
- if (counter != null && counter.isStatisticsEnabled()) {
- start = System.nanoTime();
- }
- final long startTime = start;
+ // only record time if stats is enabled
+ final StopWatch watch = (counter != null &&
counter.isStatisticsEnabled()) ? new StopWatch() : null;
return super.process(exchange, new AsyncCallback() {
public void done(boolean doneSync) {
try {
// record end time
- if (startTime > -1) {
- long diff = (System.nanoTime() - startTime) / 1000000;
- recordTime(exchange, diff);
+ if (watch != null) {
+ recordTime(exchange, watch.stop());
}
} finally {
// and let the original callback know we are done as well
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SamplingThrottler.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SamplingThrottler.java?rev=1085896&r1=1085895&r2=1085896&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SamplingThrottler.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SamplingThrottler.java
Sun Mar 27 09:16:45 2011
@@ -43,7 +43,7 @@ public class SamplingThrottler extends D
private long messageFrequency;
private long currentMessageCount;
private long samplePeriod;
- private long periodInNanos;
+ private long periodInMillis;
private TimeUnit units;
private long timeOfLastExchange;
private StopProcessor stopper = new StopProcessor();
@@ -70,7 +70,7 @@ public class SamplingThrottler extends D
}
this.samplePeriod = samplePeriod;
this.units = units;
- this.periodInNanos = units.toNanos(samplePeriod);
+ this.periodInMillis = units.toMillis(samplePeriod);
}
@Override
@@ -102,8 +102,8 @@ public class SamplingThrottler extends D
doSend = true;
}
} else {
- long now = System.nanoTime();
- if (now >= timeOfLastExchange + periodInNanos) {
+ long now = System.currentTimeMillis();
+ if (now >= timeOfLastExchange + periodInMillis) {
doSend = true;
if (log.isTraceEnabled()) {
log.trace(sampled.sample());