You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/03/01 10:21:21 UTC
[camel-performance-tests] 06/06: Use pre-created endpoints to avoid the extra cost associated with resolving them
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-performance-tests.git
commit f3da9c9bc95ccf7c4b29e14b0e21e19c5c6e177b
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Wed Mar 1 10:13:01 2023 +0100
Use pre-created endpoints to avoid the extra cost associated with resolving them
---
.../itest/jmh/BlockingProducerToSedaTest.java | 16 ++++++++-----
.../camel/itest/jmh/DirectConcurrentTest.java | 15 ++++++++-----
.../apache/camel/itest/jmh/SedaRoundTripTest.java | 26 +++++++++++++---------
3 files changed, 36 insertions(+), 21 deletions(-)
diff --git a/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/BlockingProducerToSedaTest.java b/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/BlockingProducerToSedaTest.java
index 59b9a64..58586f3 100644
--- a/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/BlockingProducerToSedaTest.java
+++ b/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/BlockingProducerToSedaTest.java
@@ -4,6 +4,7 @@ import java.io.File;
import java.util.concurrent.TimeUnit;
import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
@@ -48,6 +49,8 @@ public class BlockingProducerToSedaTest {
CamelContext context;
ProducerTemplate producerTemplate;
+ Endpoint endpoint;
+
File sampleFile = new File("some-file");
Integer someInt = Integer.valueOf(1);
Long someLong = Long.valueOf(2);
@@ -57,6 +60,7 @@ public class BlockingProducerToSedaTest {
context = new DefaultCamelContext();
producerTemplate = context.createProducerTemplate();
+ endpoint = context.getEndpoint("seda:test?blockWhenFull=true&offerTimeout=1000");
context.addRoutes(new RouteBuilder() {
@Override
@@ -64,7 +68,7 @@ public class BlockingProducerToSedaTest {
onException(IllegalStateException.class)
.process(e -> System.out.println("The SEDA queue is likely full and the system may be unable to catch to the load. Fix the test parameters"));
- fromF("seda:test").to("log: ${body}");
+ fromF("seda:test").to("log:?level=OFF");
}
});
@@ -77,7 +81,7 @@ public class BlockingProducerToSedaTest {
@BenchmarkMode({Mode.Throughput, Mode.AverageTime, Mode.SingleShotTime})
@Benchmark
public void sendBlocking(BlockingProducerToSedaTest.BenchmarkState state, Blackhole bh) {
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", "test");
+ state.producerTemplate.sendBody(state.endpoint, "test");
}
@@ -85,10 +89,10 @@ public class BlockingProducerToSedaTest {
@BenchmarkMode({Mode.Throughput, Mode.AverageTime, Mode.SingleShotTime})
@Benchmark
public void sendBlockingWithMultipleTypes(BlockingProducerToSedaTest.BenchmarkState state, Blackhole bh) {
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", "test");
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", state.someInt);
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", state.someLong);
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", state.sampleFile);
+ state.producerTemplate.sendBody(state.endpoint, "test");
+ state.producerTemplate.sendBody(state.endpoint, state.someInt);
+ state.producerTemplate.sendBody(state.endpoint, state.someLong);
+ state.producerTemplate.sendBody(state.endpoint, state.sampleFile);
}
diff --git a/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/DirectConcurrentTest.java b/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/DirectConcurrentTest.java
index b5632bb..09d8b51 100644
--- a/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/DirectConcurrentTest.java
+++ b/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/DirectConcurrentTest.java
@@ -22,6 +22,7 @@ import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
@@ -72,6 +73,8 @@ public class DirectConcurrentTest {
public static class BenchmarkState {
CamelContext camel;
ProducerTemplate producer;
+ Endpoint endpoint;
+
String someString = "test1";
File sampleFile = new File("some-file");
Integer someInt = Integer.valueOf(1);
@@ -80,6 +83,8 @@ public class DirectConcurrentTest {
@Setup(Level.Trial)
public void initialize() {
camel = new DefaultCamelContext();
+ endpoint = camel.getEndpoint("direct:start");
+
try {
camel.addRoutes(new RouteBuilder() {
@Override
@@ -121,15 +126,15 @@ public class DirectConcurrentTest {
@Benchmark
public void directConcurrentTest(BenchmarkState state, Blackhole bh) {
- state.producer.sendBody("direct:start", state.someString);
+ state.producer.sendBody(state.endpoint, state.someString);
}
@Benchmark
public void directConcurrentTestWithMultipleTypes(BenchmarkState state, Blackhole bh) {
- state.producer.sendBody("direct:start", state.someString);
- state.producer.sendBody("direct:start", state.someInt);
- state.producer.sendBody("direct:start", state.someLong);
- state.producer.sendBody("direct:start", state.sampleFile);
+ state.producer.sendBody(state.endpoint, state.someString);
+ state.producer.sendBody(state.endpoint, state.someInt);
+ state.producer.sendBody(state.endpoint, state.someLong);
+ state.producer.sendBody(state.endpoint, state.sampleFile);
}
diff --git a/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/SedaRoundTripTest.java b/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/SedaRoundTripTest.java
index 3503e6e..a6f6479 100644
--- a/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/SedaRoundTripTest.java
+++ b/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/SedaRoundTripTest.java
@@ -5,6 +5,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.camel.CamelContext;
import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.Endpoint;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
@@ -50,6 +51,8 @@ public class SedaRoundTripTest {
CamelContext context;
ProducerTemplate producerTemplate;
ConsumerTemplate consumerTemplate;
+ Endpoint producerEndpoint;
+ Endpoint consumerEndpoint;
String someString = "test1";
File sampleFile = new File("some-file");
@@ -63,6 +66,9 @@ public class SedaRoundTripTest {
producerTemplate = context.createProducerTemplate();
consumerTemplate = context.createConsumerTemplate();
+ producerEndpoint = context.getEndpoint("seda:test?blockWhenFull=true&offerTimeout=1000");
+ consumerEndpoint = context.getEndpoint("seda:test");
+
context.start();
}
}
@@ -71,8 +77,8 @@ public class SedaRoundTripTest {
@BenchmarkMode({Mode.Throughput, Mode.AverageTime, Mode.SingleShotTime})
@Benchmark
public void sendBlocking(SedaRoundTripTest.BenchmarkState state, Blackhole bh) {
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", state.someString);
- bh.consume(state.consumerTemplate.receive("seda:test"));
+ state.producerTemplate.sendBody(state.producerEndpoint, state.someString);
+ bh.consume(state.consumerTemplate.receive(state.consumerEndpoint));
}
@@ -80,17 +86,17 @@ public class SedaRoundTripTest {
@BenchmarkMode({Mode.Throughput, Mode.AverageTime, Mode.SingleShotTime})
@Benchmark
public void sendBlockingWithMultipleTypes(SedaRoundTripTest.BenchmarkState state, Blackhole bh) {
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", state.someString);
- bh.consume(state.consumerTemplate.receive("seda:test"));
+ state.producerTemplate.sendBody(state.producerEndpoint, state.someString);
+ bh.consume(state.consumerTemplate.receive(state.consumerEndpoint));
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", state.someLong);
- bh.consume(state.consumerTemplate.receive("seda:test"));
+ state.producerTemplate.sendBody(state.producerEndpoint, state.someLong);
+ bh.consume(state.consumerTemplate.receive(state.consumerEndpoint));
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", state.someInt);
- bh.consume(state.consumerTemplate.receive("seda:test"));
+ state.producerTemplate.sendBody(state.producerEndpoint, state.someInt);
+ bh.consume(state.consumerTemplate.receive(state.consumerEndpoint));
- state.producerTemplate.sendBody("seda:test?blockWhenFull=true&offerTimeout=1000", state.sampleFile);
- bh.consume(state.consumerTemplate.receive("seda:test"));
+ state.producerTemplate.sendBody(state.producerEndpoint, state.sampleFile);
+ bh.consume(state.consumerTemplate.receive(state.consumerEndpoint));
}