-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Module rearange and add kotlin benchmark #950
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 | |||
} | |||
} | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EOL is missing now.
@@ -180,4 +180,3 @@ public enum BundleType { | |||
IDENTICAL_PRODUCT | |||
} | |||
} | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EOL is missing now.
@@ -10,6 +10,7 @@ dependencies { | |||
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this dependency necessary?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
@@ -16,7 +16,7 @@ | |||
* limitations under the License. | |||
*/ | |||
|
|||
package com.navercorp.fixturemonkey.kotlin; | |||
package com.navercorp.fixturemonkey.kotlin.spec; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this change has nothing to do with this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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-kotlin
module using JMHTo ensure consistent results, use the same class and use the
java-test-fixtures
plugin for code reuse.make new module
fixture-monkey-benchmarks
for aggregating sub-benchmark-module.Due to some local compile issues when defining Java classes within the Kotlin module, move the
ExpressionGeneratorJavaTestSpecs.java
to a Java package infixture-monkey-kotlin
.Add default benchmark samples to the
fixture-monkey-kotlin
module.Modify the GitHub Actions workflow for benchmark reporting.
How Has This Been Tested?
Local Build and Ci Pipline
Is the Document updated?
no need