switch to Gradle build system
This commit is contained in:
50
benchmark/src/main/java/net/woggioni/jwo/benchmark/Main.java
Normal file
50
benchmark/src/main/java/net/woggioni/jwo/benchmark/Main.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package net.woggioni.jwo.benchmark;
|
||||
|
||||
import lombok.SneakyThrows;
|
||||
import net.woggioni.jwo.Chronometer;
|
||||
import net.woggioni.jwo.CollectionUtils;
|
||||
import net.woggioni.jwo.JWO;
|
||||
import net.woggioni.jwo.io.CircularInputStream;
|
||||
import net.woggioni.jwo.tuple.Tuple2;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class Main {
|
||||
|
||||
@SneakyThrows
|
||||
private static void withBenchmarkReader(Consumer<Reader> fn) {
|
||||
Reader reader = new InputStreamReader(JWO.class.getResourceAsStream("/render_template_test.txt"));
|
||||
InputStream is = new CircularInputStream(JWO.readAll(reader).getBytes(), 10000);
|
||||
try {
|
||||
fn.accept(new InputStreamReader(is));
|
||||
} finally {
|
||||
if (reader != null) reader.close();
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String... args) {
|
||||
Map<String, Object> valuesMap = Stream.of(
|
||||
new Tuple2<>("author", "John Doe"),
|
||||
new Tuple2<>("date", "2020-03-25 16:22"),
|
||||
new Tuple2<>("adjective", "simple"))
|
||||
.collect(CollectionUtils.toUnmodifiableTreeMap(it -> it._1, it -> it._2));
|
||||
withBenchmarkReader(
|
||||
reader -> {
|
||||
Chronometer chronometer = new Chronometer();
|
||||
String result = JWO.renderTemplate(reader, valuesMap);
|
||||
System.out.printf("Elapsed time: %.3f\n", chronometer.elapsed(Chronometer.UnitOfMeasure.SECONDS));
|
||||
});
|
||||
|
||||
withBenchmarkReader(
|
||||
reader -> {
|
||||
Chronometer chronometer = new Chronometer();
|
||||
String result = NaiveTemplateRenderer.renderTemplateNaive(JWO.readAll(reader), valuesMap);
|
||||
System.out.printf("Elapsed time: %.3f\n", chronometer.elapsed(Chronometer.UnitOfMeasure.SECONDS));
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,47 +0,0 @@
|
||||
package net.woggioni.jwo.benchmark
|
||||
|
||||
import java.io.{InputStream, InputStreamReader, Reader}
|
||||
|
||||
import net.woggioni.jwo.io.CircularInputStream
|
||||
import net.woggioni.jwo.{Chronometer, JWO}
|
||||
|
||||
import scala.collection.JavaConverters._
|
||||
|
||||
object Main {
|
||||
|
||||
def withBenchmarkReader(fn : Reader => Unit) = {
|
||||
val reader = new InputStreamReader(classOf[JWO].getResourceAsStream("/render_template_test.txt"))
|
||||
val is : InputStream = new CircularInputStream(JWO.readAll(reader).getBytes, 10000)
|
||||
try {
|
||||
fn(new InputStreamReader(is))
|
||||
} finally {
|
||||
if (reader != null) reader.close()
|
||||
}
|
||||
}
|
||||
|
||||
def renderTemplateBenchmark() {
|
||||
val valuesMap = Map[String, Object]("author" -> "John Doe",
|
||||
"date" -> "2020-03-25 16:22",
|
||||
"adjective" -> "simple")
|
||||
withBenchmarkReader(
|
||||
reader => {
|
||||
val chronometer = new Chronometer
|
||||
val result = JWO.renderTemplate(reader, valuesMap.asJava)
|
||||
printf("Elapsed time: %.3f\n", chronometer.elapsed(Chronometer.UnitOfMeasure.SECONDS))
|
||||
}
|
||||
)
|
||||
|
||||
withBenchmarkReader(
|
||||
reader => {
|
||||
val chronometer = new Chronometer
|
||||
val result = NaiveTemplateRenderer.renderTemplateNaive(JWO.readAll(reader), valuesMap.asJava)
|
||||
printf("Elapsed time: %.3f\n", chronometer.elapsed(Chronometer.UnitOfMeasure.SECONDS))
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
def main(argv : Array[String]) = {
|
||||
renderTemplateBenchmark()
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user