Skip to content

Commit f84194e

Browse files
committed
Add benchmarks for new output collectors
1 parent 784d312 commit f84194e

File tree

2 files changed

+46
-4
lines changed

2 files changed

+46
-4
lines changed

benchmark/src/commonMain/kotlin/io/github/optimumcode/json/schema/benchmark/AbstractCommonBenchmark.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package io.github.optimumcode.json.schema.benchmark
22

33
import io.github.optimumcode.json.schema.ErrorCollector
44
import io.github.optimumcode.json.schema.JsonSchema
5+
import io.github.optimumcode.json.schema.OutputCollector
56
import kotlinx.benchmark.Benchmark
67
import kotlinx.benchmark.Blackhole
78
import kotlinx.benchmark.Setup
@@ -49,4 +50,24 @@ abstract class AbstractCommonBenchmark {
4950
fun validate(bh: Blackhole) {
5051
bh.consume(schema.validate(document, ErrorCollector.EMPTY))
5152
}
53+
54+
@Benchmark
55+
fun validateFlag(bh: Blackhole) {
56+
bh.consume(schema.validate(document, OutputCollector.flag()))
57+
}
58+
59+
@Benchmark
60+
fun validateBasic(bh: Blackhole) {
61+
bh.consume(schema.validate(document, OutputCollector.basic()))
62+
}
63+
64+
@Benchmark
65+
fun validateDetailed(bh: Blackhole) {
66+
bh.consume(schema.validate(document, OutputCollector.detailed()))
67+
}
68+
69+
@Benchmark
70+
fun validateVerbose(bh: Blackhole) {
71+
bh.consume(schema.validate(document, OutputCollector.verbose()))
72+
}
5273
}

benchmark/src/jvmMain/kotlin/io/github/optimumcode/json/schema/benchmark/AbstractComparisonBenchmark.kt

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import com.networknt.schema.OutputFormat
77
import com.networknt.schema.SchemaValidatorsConfig
88
import com.networknt.schema.SpecVersion.VersionFlag.V7
99
import io.github.optimumcode.json.schema.ErrorCollector
10+
import io.github.optimumcode.json.schema.OutputCollector
1011
import io.github.optimumcode.json.schema.ValidationError
1112
import io.github.optimumcode.json.schema.fromStream
1213
import io.openapiprocessor.jackson.JacksonConverter
@@ -105,13 +106,18 @@ abstract class AbstractComparisonBenchmark {
105106
}
106107

107108
@Benchmark
108-
fun validateKmpFlag(bh: Blackhole) {
109-
bh.consume(schema.validate(document, ErrorCollector.EMPTY))
109+
fun validateNetworkntDetailed(bh: Blackhole) {
110+
bh.consume(networkntSchema.validate(networkntDocument, OutputFormat.LIST))
110111
}
111112

112113
@Benchmark
113-
fun validateNetworkntCollectErrors(bh: Blackhole) {
114-
bh.consume(networkntSchema.validate(networkntDocument, OutputFormat.LIST))
114+
fun validateNetworkntVerbose(bh: Blackhole) {
115+
bh.consume(networkntSchema.validate(networkntDocument, OutputFormat.HIERARCHICAL))
116+
}
117+
118+
@Benchmark
119+
fun validateKmpEmptyCollector(bh: Blackhole) {
120+
bh.consume(schema.validate(document, ErrorCollector.EMPTY))
115121
}
116122

117123
@Benchmark
@@ -120,4 +126,19 @@ abstract class AbstractComparisonBenchmark {
120126
schema.validate(document, errors::add)
121127
bh.consume(errors)
122128
}
129+
130+
@Benchmark
131+
fun validateKmpFlag(bh: Blackhole) {
132+
bh.consume(schema.validate(document, OutputCollector.flag()))
133+
}
134+
135+
@Benchmark
136+
fun validateKmpDetailed(bh: Blackhole) {
137+
bh.consume(schema.validate(document, OutputCollector.detailed()))
138+
}
139+
140+
@Benchmark
141+
fun validateKmpVerbose(bh: Blackhole) {
142+
bh.consume(schema.validate(document, OutputCollector.verbose()))
143+
}
123144
}

0 commit comments

Comments
 (0)