Module rearange and add kotlin benchmark#950
Conversation
|
How about adding a new module to benchmark? |
Im considering two approaches
From the perspective of However, I'm not entirely confident due to the downside of increased dependency complexity. |
|
|
I'm sure you've given it a lot of thought. |
|
Currently, the execution speed of performance bench check feels too slow, leading to a decrease in productivity. With the current PR, as adding just two of kotlin benchmarking, there has been an increase of over 4 minutes. As fixture-monkey continues to expand with more tests being added, i expect to take more times in future. so, in near future, try to various pipelines such as:
are expected to be considered. In such cases, big one module for benchmark might lead to break changes. Of course, this is just speculative in my opinion, and the problems of increased dependency complexity and management points cannot be ignored. |
|
Oh, I see, thank you for your detailed explanation. |
|
Oh, that sounds good. There seems to be no need to place the benchmark testing module under the basic module structure unnecessarily. Thank you for the great idea. |
| @@ -174,4 +174,3 @@ public enum BundleType { | |||
| IDENTICAL_PRODUCT | |||
| } | |||
| } | |||
|
|
|||
| @@ -180,4 +180,3 @@ public enum BundleType { | |||
| IDENTICAL_PRODUCT | |||
| } | |||
| } | |||
|
|
|||
| implementation("org.jetbrains.kotlin:kotlin-reflect:${Versions.KOTLIN}") | ||
|
|
||
| testImplementation(project(":fixture-monkey-jackson")) | ||
| testImplementation(project(":fixture-monkey-javax-validation")) |
There was a problem hiding this comment.
Is this dependency necessary?
There was a problem hiding this comment.
In the ExpressionGeneratorJavaTestSpecs, javax validation was previously being used.
Even on the main branch, compile was not successful in my local environment, the exact reason is unclear.
After changing modules, ci compile fails in the absence of the dependency, so it necessary in the current situation.
| */ | ||
|
|
||
| package com.navercorp.fixturemonkey.kotlin; | ||
| package com.navercorp.fixturemonkey.kotlin.spec; |
There was a problem hiding this comment.
I think this change has nothing to do with this PR.
| import com.navercorp.fixturemonkey.kotlin.spec.ExpressionGeneratorJavaTestSpecs.DogJava | ||
| import com.navercorp.fixturemonkey.kotlin.spec.ExpressionGeneratorJavaTestSpecs.PersonJava |
There was a problem hiding this comment.
I think this change has nothing to do with this PR.
seongahjo
left a comment
There was a problem hiding this comment.
Only minor convention changes are required.
Nice work 👍
Summary
I suggest some modifications to the current structure to facilitate benchmark testing of the
fixture-monkey-kotlinmodule using JMHTo ensure consistent results, use the same class and use the
java-test-fixturesplugin for code reuse.make new module
fixture-monkey-benchmarksfor aggregating sub-benchmark-module.Due to some local compile issues when defining Java classes within the Kotlin module, move the
ExpressionGeneratorJavaTestSpecs.javato a Java package infixture-monkey-kotlin.Add default benchmark samples to the
fixture-monkey-kotlinmodule.Modify the GitHub Actions workflow for benchmark reporting.
How Has This Been Tested?
Local Build and Ci Pipline
Is the Document updated?
no need