Skip to content

Commit 33b4a4f

Browse files
author
Abduqodiri Qurbonzoda
committed
Clean up benchmarkSourceGenerator.kt
1 parent db6bec6 commit 33b4a4f

File tree

1 file changed

+29
-69
lines changed

1 file changed

+29
-69
lines changed

benchmarks-libraries/src/main/kotlin/generators/benchmarkSourceGenerator.kt

Lines changed: 29 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ import java.nio.file.Path
3636
import java.nio.file.Paths
3737
import javax.xml.xpath.XPathFactory
3838

39+
40+
private const val BENCHMARKS_ROOT = "src/jmh/java/"
41+
42+
3943
abstract class SourceGenerator {
4044
abstract val outputFileName: String
4145
open fun getPackage(): String = "benchmarks"
@@ -60,6 +64,17 @@ abstract class SourceGenerator {
6064
protected abstract fun generateBody(out: PrintWriter): Unit
6165
}
6266

67+
fun readCopyrightNoticeFromProfile(copyrightProfile: File): String {
68+
val template = copyrightProfile.reader().use { reader ->
69+
XPathFactory.newInstance().newXPath().evaluate("/component/copyright/option[@name='notice']/@value", InputSource(reader))
70+
}
71+
val yearTemplate = "$today.year"
72+
val year = java.time.LocalDate.now().year.toString()
73+
assert(yearTemplate in template)
74+
75+
return template.replace(yearTemplate, year).lines().joinToString("", prefix = "/*\n", postfix = " */\n") { " * $it\n" }
76+
}
77+
6378

6479
abstract class BenchmarkSourceGenerator: SourceGenerator() {
6580
override val imports: Set<String> = setOf(
@@ -87,19 +102,6 @@ abstract class UtilsSourceGenerator: SourceGenerator() {
87102
override val imports: Set<String> = setOf()
88103
}
89104

90-
fun readCopyrightNoticeFromProfile(copyrightProfile: File): String {
91-
val template = copyrightProfile.reader().use { reader ->
92-
XPathFactory.newInstance().newXPath().evaluate("/component/copyright/option[@name='notice']/@value", InputSource(reader))
93-
}
94-
val yearTemplate = "&#36;today.year"
95-
val year = java.time.LocalDate.now().year.toString()
96-
assert(yearTemplate in template)
97-
98-
return template.replace(yearTemplate, year).lines().joinToString("", prefix = "/*\n", postfix = " */\n") { " * $it\n" }
99-
}
100-
101-
private const val BENCHMARKS_ROOT = "src/jmh/java/"
102-
103105

104106
private val listImpls = listOf(
105107
KotlinListImplementation,
@@ -171,13 +173,6 @@ fun generateBenchmarks() {
171173
ListSetBenchmarkGenerator(it),
172174
ListUtilsGenerator(it)
173175
) }
174-
/*listOf(
175-
listImpls.filterIsInstance<ListAddBenchmark>().map { ListAddBenchmarkGenerator(it) },
176-
listImpls.filterIsInstance<ListGetBenchmark>().map { ListGetBenchmarkGenerator(it) },
177-
listImpls.filterIsInstance<ListIterateBenchmark>().map { ListIterateBenchmarkGenerator(it) },
178-
listImpls.filterIsInstance<ListRemoveBenchmark>().map { ListRemoveBenchmarkGenerator(it) },
179-
listImpls.filterIsInstance<ListSetBenchmark>().map { ListSetBenchmarkGenerator(it) }
180-
)*/
181176
val listBuilderBenchmarks = listBuilderImpls.map { listOf(
182177
ListBuilderAddBenchmarkGenerator(it),
183178
ListBuilderGetBenchmarkGenerator(it),
@@ -187,13 +182,6 @@ fun generateBenchmarks() {
187182
) } + listBuilderImpls.filter(ListBuilderImplementation::isIterable).map { listOf(
188183
ListBuilderIterateBenchmarkGenerator(it)
189184
) }
190-
/*listOf(
191-
listBuilderImpls.filterIsInstance<ListBuilderAddBenchmark>().map { ListBuilderAddBenchmarkGenerator(it) },
192-
listBuilderImpls.filterIsInstance<ListBuilderGetBenchmark>().map { ListBuilderGetBenchmarkGenerator(it) },
193-
listBuilderImpls.filterIsInstance<ListBuilderIterateBenchmark>().map { ListBuilderIterateBenchmarkGenerator(it) },
194-
listBuilderImpls.filterIsInstance<ListBuilderRemoveBenchmark>().map { ListBuilderRemoveBenchmarkGenerator(it) },
195-
listBuilderImpls.filterIsInstance<ListBuilderSetBenchmark>().map { ListBuilderSetBenchmarkGenerator(it) }
196-
)*/
197185

198186
val mapBenchmarks = mapImpls.map { listOf(
199187
MapGetBenchmarkGenerator(it),
@@ -202,12 +190,6 @@ fun generateBenchmarks() {
202190
MapRemoveBenchmarkGenerator(it),
203191
MapUtilsGenerator(it)
204192
) }
205-
/*listOf(
206-
mapImpls.filterIsInstance<MapGetBenchmark>().map { MapGetBenchmarkGenerator(it) },
207-
mapImpls.filterIsInstance<MapIterateBenchmark>().map { MapIterateBenchmarkGenerator(it) },
208-
mapImpls.filterIsInstance<MapPutBenchmark>().map { MapPutBenchmarkGenerator(it) },
209-
mapImpls.filterIsInstance<MapRemoveBenchmark>().map { MapRemoveBenchmarkGenerator(it) }
210-
)*/
211193
val mapBuilderBenchmarks = mapBuilderImpls.map { listOf(
212194
MapBuilderGetBenchmarkGenerator(it),
213195
MapBuilderPutBenchmarkGenerator(it),
@@ -216,12 +198,6 @@ fun generateBenchmarks() {
216198
) } + mapBuilderImpls.filter(MapBuilderImplementation::isIterable).map { listOf(
217199
MapBuilderIterateBenchmarkGenerator(it)
218200
) }
219-
/*listOf(
220-
mapBuilderImpls.filterIsInstance<MapBuilderGetBenchmark>().map { MapBuilderGetBenchmarkGenerator(it) },
221-
mapBuilderImpls.filterIsInstance<MapBuilderIterateBenchmark>().map { MapBuilderIterateBenchmarkGenerator(it) },
222-
mapBuilderImpls.filterIsInstance<MapBuilderPutBenchmark>().map { MapBuilderPutBenchmarkGenerator(it) },
223-
mapBuilderImpls.filterIsInstance<MapBuilderRemoveBenchmark>().map { MapBuilderRemoveBenchmarkGenerator(it) }
224-
)*/
225201

226202
val setBenchmarks = setImpls.map { listOf(
227203
SetAddBenchmarkGenerator(it),
@@ -230,12 +206,6 @@ fun generateBenchmarks() {
230206
SetRemoveBenchmarkGenerator(it),
231207
SetUtilsGenerator(it)
232208
) }
233-
/*listOf(
234-
setImpls.filterIsInstance<SetAddBenchmark>().map { SetAddBenchmarkGenerator(it) },
235-
setImpls.filterIsInstance<SetContainsBenchmark>().map { SetContainsBenchmarkGenerator(it) },
236-
setImpls.filterIsInstance<SetIterateBenchmark>().map { SetIterateBenchmarkGenerator(it) },
237-
setImpls.filterIsInstance<SetRemoveBenchmark>().map { SetRemoveBenchmarkGenerator(it) }
238-
)*/
239209
val setBuilderBenchmarks = setBuilderImpls.map { listOf(
240210
SetBuilderAddBenchmarkGenerator(it),
241211
SetBuilderContainsBenchmarkGenerator(it),
@@ -244,48 +214,38 @@ fun generateBenchmarks() {
244214
) } + setBuilderImpls.filter(SetBuilderImplementation::isIterable).map { listOf(
245215
SetBuilderIterateBenchmarkGenerator(it)
246216
) }
247-
/*listOf(
248-
setBuilderImpls.filterIsInstance<SetBuilderAddBenchmark>().map { SetBuilderAddBenchmarkGenerator(it) },
249-
setBuilderImpls.filterIsInstance<SetBuilderContainsBenchmark>().map { SetBuilderContainsBenchmarkGenerator(it) },
250-
setBuilderImpls.filterIsInstance<SetBuilderIterateBenchmark>().map { SetBuilderIterateBenchmarkGenerator(it) },
251-
setBuilderImpls.filterIsInstance<SetBuilderRemoveBenchmark>().map { SetBuilderRemoveBenchmarkGenerator(it) }
252-
)*/
253-
254-
255-
val allBenchmarks = (listBenchmarks + listBuilderBenchmarks + mapBenchmarks + mapBuilderBenchmarks + setBenchmarks + setBuilderBenchmarks).flatten()
256217

257-
allBenchmarks.forEach { benchmark ->
258-
val path = benchmark.getPackage().replace('.', '/') + "/" + benchmark.outputFileName + ".kt"
259-
val file = File(BENCHMARKS_ROOT + path)
260-
file.parentFile?.mkdirs()
261-
val out = PrintWriter(file)
262-
benchmark.generate(out)
263-
out.flush()
264-
}
265-
}
266-
267-
fun generateUtils() {
268218
val commonUtils = listOf(
269219
IntWrapperGenerator(),
270220
CommonUtilsGenerator()
271221
)
272222

273-
commonUtils.forEach { util ->
274-
val path = util.getPackage().replace('.', '/') + "/" + util.outputFileName + ".kt"
223+
224+
val allGenerators = commonUtils + listOf(
225+
listBenchmarks,
226+
listBuilderBenchmarks,
227+
mapBenchmarks,
228+
mapBuilderBenchmarks,
229+
setBenchmarks,
230+
setBuilderBenchmarks
231+
).flatten().flatten()
232+
233+
allGenerators.forEach { generator ->
234+
val path = generator.getPackage().replace('.', '/') + "/" + generator.outputFileName + ".kt"
275235
val file = File(BENCHMARKS_ROOT + path)
276236
file.parentFile?.mkdirs()
277237
val out = PrintWriter(file)
278-
util.generate(out)
238+
generator.generate(out)
279239
out.flush()
280240
}
281241
}
282242

243+
283244
fun main() {
284245
Files.walk(Paths.get(BENCHMARKS_ROOT))
285246
.sorted(Comparator.reverseOrder())
286247
.map(Path::toFile)
287248
.forEach { it.delete() }
288249

289-
generateUtils()
290250
generateBenchmarks()
291251
}

0 commit comments

Comments
 (0)