Skip to content

Commit 948cc2e

Browse files
Adapted Java Main to use Java System Logger.
Changed benchmark to compare between JUL, log4j and logback.
1 parent 29019dd commit 948cc2e

File tree

13 files changed

+52
-7
lines changed

13 files changed

+52
-7
lines changed

benchmark.sh

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@ set -e
99
#
1010

1111
COMMANDS=(
12-
"java -cp build/java Main" # Java 1
13-
"java -cp build/java Main2" # Java 2
14-
"sbcl --script src/lisp/main.lisp" # Common Lisp
15-
"./phone_encoder" # Rust
12+
"java -Djava.util.logging.config.file=log-config/jul.properties -cp build/java Main" # Java (JUL)
13+
"java -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -cp build/java:log-config:log4j-libs/* Main" # Java (Log4j2)
14+
"java -Djava.util.logging.config.file=log-config/jul-logback.properties -cp build/java:log-config:logback-libs/* Main" # Java (Logback)
1615
)
1716

1817
echo "Compiling Java sources"
@@ -26,12 +25,13 @@ cd ../benchmark_runner && cargo build --release && cp target/release/benchmark_r
2625
cd ../../..
2726

2827
echo "Generating inputs"
29-
INPUTS=(phones_1000.txt phones_10_000.txt phones_50_000.txt phones_100_000_with_empty.txt)
28+
INPUTS=(phones_1000.txt phones_10_000.txt phones_50_000.txt phones_100_000_with_empty.txt phones_200_000_with_empty.txt)
3029
rm "${INPUTS[@]}" > /dev/null 2>&1 || true
3130
java -cp "build/util" util.GeneratePhoneNumbers 1000 > phones_1000.txt
3231
java -cp "build/util" util.GeneratePhoneNumbers 10000 > phones_10_000.txt
3332
java -cp "build/util" util.GeneratePhoneNumbers 50000 > phones_50_000.txt
3433
java -cp "build/util" util.GeneratePhoneNumbers 100000 "true" > phones_100_000_with_empty.txt
34+
java -cp "build/util" util.GeneratePhoneNumbers 200000 "true" > phones_200_000_with_empty.txt
3535

3636
CHECK_FILE="proc_out.txt"
3737
DEFAULT_INPUT="input.txt"
@@ -42,9 +42,10 @@ echo "Checking all programs for correctness"
4242
for CMD in "${COMMANDS[@]}"
4343
do
4444
echo "Checking: $CMD"
45-
$CMD $DICTIONARY $DEFAULT_INPUT > $CHECK_FILE
45+
$CMD $DICTIONARY $DEFAULT_INPUT
4646
diff -q <(sort $CHECK_FILE) <(sort $DEFAULT_OUTPUT)
4747
echo "OK"
48+
rm $CHECK_FILE
4849
done
4950

5051
echo "Benchmarking..."

log-config/jul-logback.properties

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
handlers = org.slf4j.bridge.SLF4JBridgeHandler
2+
.level= INFO
3+
java.util.logging.FileHandler.level = INFO
4+
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
5+
java.util.logging.FileHandler.pattern = proc_out.txt
6+
java.util.logging.SimpleFormatter.format = %5$s%n

log-config/jul.properties

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
handlers= java.util.logging.FileHandler
2+
.level= INFO
3+
java.util.logging.FileHandler.level = INFO
4+
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
5+
java.util.logging.FileHandler.pattern = proc_out.txt
6+
java.util.logging.SimpleFormatter.format = %5$s%n

log-config/log4j2.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Configuration status="WARN">
3+
<Appenders>
4+
<File name="File" bufferedIO="true" fileName="proc_out.txt">
5+
<PatternLayout pattern="%msg%n"/>
6+
</File>
7+
</Appenders>
8+
<Loggers>
9+
<Root level="info">
10+
<AppenderRef ref="File"/>
11+
</Root>
12+
</Loggers>
13+
</Configuration>

log-config/logback.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<configuration>
2+
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
3+
<file>proc_out.txt</file>
4+
<immediateFlush>true</immediateFlush>
5+
<encoder>
6+
<pattern>%msg%n</pattern>
7+
</encoder>
8+
</appender>
9+
10+
<root level="info">
11+
<appender-ref ref="FILE" />
12+
</root>
13+
</configuration>

log4j-libs/log4j-api-2.17.1.jar

295 KB
Binary file not shown.

log4j-libs/log4j-core-2.17.1.jar

1.71 MB
Binary file not shown.

log4j-libs/log4j-jul-2.17.1.jar

30.3 KB
Binary file not shown.
4.48 KB
Binary file not shown.
228 KB
Binary file not shown.

0 commit comments

Comments
 (0)