Closed Spikhalskiy closed 11 months ago
@dstepanov I tried SNAPSHOT core with #10195 and while it may decrease the duration of kaptKotlin
stage by 10%, it unfortunately doesn't compensate for 5x degradation that comes from the switch 4.1.x -> 4.2.x. The root cause is probably somewhere else. Let me know if you want me to upload updated sampling snapshots.
I think it was caused by https://github.com/micronaut-projects/micronaut-core/commit/e1a990bfe69672599f4fcc19dd1568d7387729d5 Do you have a lot of interfaces with annotations?
Can you benchmark using the async profiler? https://github.com/async-profiler/async-profiler: You can attach it to the Gradle worker remotely.
@dstepanov I can't say so. We have some, but it's in low double digits. Nothing to justify a 30 seconds -> 2.5 minutes jump. Mostly it's controllers with data classes. I will take async-profiler snapshots of kapKotlin stage today.
Thanks, if you are willing, I might try to come up with a few branches for you to build locally and check if it does improve anything.
@dstepanov Yes! I can build snapshots locally, give them a shot, and see if any of them bring the timings back. Whatever it takes. Currently, we are pretty much blocked from 4.2.x for developer productivity reasons.
Profiles of kaptKotlin tasks taken with JetBrains-integrated async-profiler for 4.1.6 and 4.2.1 with micronaut-core:4.2.2-SNAPSHOT: micronaut_4_1.jfr.zip micronaut_4_2.jfr.zip
@dstepanov Unfortunately, #10237 seems to not help our project much.
kaptKotlin with Micronaut 4.1.6 is 30 seconds kaptKotlin with platform:4.3.0-SNAPSHOT + micronaut-core:4.3.0-SNAPSHOT is 2.5 mins
Let me know if you want an async-profiler recording updated for this PR.
Hmm, is it better than before?
Please try to profile
Make sure you use:
configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'io.micronaut') {
details.useVersion "4.3.0-SNAPSHOT"
}
}
}
micronaut-core 4.3.0-20231211.112139-26 and 4.3.0-20231208.160954-24 give me the same time +- 2 sec.
./gradlew dependencies --configuration kapt
kapt
+--- io.micronaut.platform:micronaut-platform:4.3.0-SNAPSHOT
| +--- org.junit:junit-bom:5.10.1
| +--- io.micronaut.acme:micronaut-acme-bom:4.1.0
| +--- io.micronaut.aot:micronaut-aot-bom:2.1.1
| +--- io.micronaut.aws:micronaut-aws-bom:4.1.1
| | +--- com.amazonaws:aws-java-sdk-bom:1.12.580
| | \--- software.amazon.awssdk:bom:2.20.162
| +--- io.micronaut.azure:micronaut-azure-bom:5.1.0
| +--- io.micronaut.cache:micronaut-cache-bom:4.1.1
| +--- io.micronaut.cassandra:micronaut-cassandra-bom:6.1.1
| +--- io.micronaut.chatbots:micronaut-chatbots-bom:2.0.0-M6
| +--- io.micronaut.coherence:micronaut-coherence-bom:4.0.0
| | \--- com.oracle.coherence.ce:coherence-bom:23.03
| +--- io.micronaut.controlpanel:micronaut-control-panel-bom:1.1.0
| +--- io.micronaut:micronaut-core-bom:4.2.1
| | +--- org.apache.groovy:groovy-bom:4.0.16
| | +--- com.fasterxml.jackson:jackson-bom:2.15.3
| | +--- org.jetbrains.kotlin:kotlin-bom:1.9.21
| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.21 (c)
| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 (c)
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.21 (c)
| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3
| | +--- io.netty:netty-bom:4.1.101.Final
| | +--- com.google.devtools.ksp:symbol-processing-api:1.9.21-1.0.15 (c)
| | +--- io.micronaut:micronaut-aop:4.2.1 (c)
| | +--- io.micronaut:micronaut-core:4.2.1 -> 4.3.0-20231211.112139-26 (c)
| | +--- io.micronaut:micronaut-core-processor:4.2.1 (c)
| | +--- io.micronaut:micronaut-http-server:4.2.1 (c)
| | +--- io.micronaut:micronaut-http-validation:4.2.1 (c)
| | +--- io.micronaut:micronaut-inject:4.2.1 (c)
| | +--- io.micronaut:micronaut-inject-java:4.2.1 (c)
| | +--- io.micronaut:micronaut-inject-kotlin:4.2.1 (c)
| | +--- io.micronaut:micronaut-websocket:4.2.1 (c)
| | +--- io.micronaut:micronaut-core-reactive:4.2.1 (c)
| | +--- com.github.javaparser:javaparser-symbol-solver-core:3.25.6 (c)
| | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.0 (c)
| | +--- io.micronaut:micronaut-http:4.2.1 (c)
| | +--- io.micronaut:micronaut-router:4.2.1 (c)
| | +--- io.micronaut:micronaut-http-client-core:4.2.1 (c)
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.21 (c)
| | +--- jakarta.annotation:jakarta.annotation-api:2.1.1 (c)
| | +--- org.reactivestreams:reactive-streams:1.0.4 (c)
| | +--- io.micronaut:micronaut-context-propagation:4.2.1 (c)
| | +--- io.micronaut:micronaut-context:4.2.1 (c)
| | +--- io.micronaut:micronaut-json-core:4.2.1 (c)
| | +--- io.micronaut:micronaut-discovery-core:4.2.1 (c)
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 (c)
| +--- io.micronaut.crac:micronaut-crac-bom:2.1.0
| +--- io.micronaut.data:micronaut-data-bom:4.4.0
| +--- io.micronaut.discovery:micronaut-discovery-client-bom:4.1.0
| +--- io.micronaut.eclipsestore:micronaut-eclipsestore-bom:1.0.1
| +--- io.micronaut.elasticsearch:micronaut-elasticsearch-bom:5.1.0
| +--- io.micronaut.email:micronaut-email-bom:2.3.0
| +--- io.micronaut.flyway:micronaut-flyway-bom:6.2.1
| +--- io.micronaut.gcp:micronaut-gcp-bom:5.3.0
| +--- io.micronaut.graphql:micronaut-graphql-bom:4.1.0
| +--- io.micronaut.groovy:micronaut-groovy-bom:4.1.0
| | \--- org.apache.groovy:groovy-bom:4.0.15 -> 4.0.16
| +--- io.micronaut.grpc:micronaut-grpc-bom:4.2.0
| | +--- io.grpc:grpc-bom:1.59.1
| | \--- com.google.protobuf:protobuf-bom:3.25.1
| +--- io.micronaut.beanvalidation:micronaut-hibernate-validator-bom:4.1.0
| +--- io.micronaut.xml:micronaut-jackson-xml-bom:4.1.0
| +--- io.micronaut.jaxrs:micronaut-jaxrs-bom:4.2.0
| +--- io.micronaut.jms:micronaut-jms-bom:3.1.0
| +--- io.micronaut.jmx:micronaut-jmx-bom:4.1.0
| +--- io.micronaut.kafka:micronaut-kafka-bom:5.2.0
| +--- io.micronaut.kotlin:micronaut-kotlin-bom:4.1.0
| | \--- io.ktor:ktor-bom:2.3.5
| +--- io.micronaut.kubernetes:micronaut-kubernetes-bom:5.1.0
| +--- io.micronaut.liquibase:micronaut-liquibase-bom:6.1.0
| +--- io.micronaut.logging:micronaut-logging-bom:1.2.0
| | +--- org.apache.logging.log4j:log4j-bom:2.22.0
| | \--- org.slf4j:slf4j-api:2.0.9 (c)
| +--- io.micronaut.micrometer:micronaut-micrometer-bom:5.2.0
| | +--- io.micrometer:micrometer-bom:1.11.5
| | | +--- io.micrometer:micrometer-commons:1.11.5 (c)
| | | +--- io.micrometer:micrometer-core:1.11.5 (c)
| | | \--- io.micrometer:micrometer-observation:1.11.5 (c)
| | +--- io.micrometer:micrometer-core:1.11.5 (c)
| | +--- io.micronaut.micrometer:micronaut-micrometer-annotation:5.2.0 (c)
| | \--- io.micrometer:micrometer-observation:1.11.5 (c)
| +--- io.micronaut.microstream:micronaut-microstream-bom:2.2.0
| +--- io.micronaut.mongodb:micronaut-mongo-bom:5.1.0
| +--- io.micronaut.mqtt:micronaut-mqtt-bom:3.1.0
| +--- io.micronaut.multitenancy:micronaut-multitenancy-bom:5.2.0
| +--- io.micronaut.nats:micronaut-nats-bom:4.1.0
| +--- io.micronaut.neo4j:micronaut-neo4j-bom:6.2.0
| +--- io.micronaut.objectstorage:micronaut-object-storage-bom:2.2.0
| +--- io.micronaut.openapi:micronaut-openapi-bom:6.3.0
| +--- io.micronaut.oraclecloud:micronaut-oraclecloud-bom:3.2.0
| +--- io.micronaut.picocli:micronaut-picocli-bom:5.1.0
| +--- io.micronaut.problem:micronaut-problem-json-bom:3.1.0
| +--- io.micronaut.pulsar:micronaut-pulsar-bom:2.1.0
| +--- io.micronaut.r2dbc:micronaut-r2dbc-bom:5.2.0
| +--- io.micronaut.rabbitmq:micronaut-rabbitmq-bom:4.2.0
| +--- io.micronaut.reactor:micronaut-reactor-bom:3.2.0
| | +--- io.projectreactor:reactor-bom:2023.0.0
| | | +--- io.projectreactor:reactor-core:3.6.0 (c)
| | | \--- org.reactivestreams:reactive-streams:1.0.4 (c)
| | \--- io.micronaut.reactor:micronaut-reactor:3.2.0 (c)
| +--- io.micronaut.redis:micronaut-redis-bom:6.1.0
| +--- io.micronaut.rss:micronaut-rss-bom:4.1.0
| +--- io.micronaut.rxjava2:micronaut-rxjava2-bom:2.2.0
| +--- io.micronaut.rxjava3:micronaut-rxjava3-bom:3.1.0
| +--- io.micronaut.security:micronaut-security-bom:4.4.0
| | \--- io.micronaut.security:micronaut-security-annotations:4.4.0 (c)
| +--- io.micronaut.serde:micronaut-serde-bom:2.5.0
| +--- io.micronaut.servlet:micronaut-servlet-bom:4.3.0
| +--- io.micronaut.session:micronaut-session-bom:4.1.0
| +--- io.micronaut.spring:micronaut-spring-bom:5.3.0
| | \--- org.springframework:spring-framework-bom:6.1.0
| +--- io.micronaut.sql:micronaut-sql-bom:5.4.0
| | \--- org.jdbi:jdbi3-bom:3.42.0
| +--- io.micronaut.test:micronaut-test-bom:4.1.1
| | +--- org.junit:junit-bom:5.10.1
| | +--- io.kotest:kotest-bom:5.7.2
| | +--- io.rest-assured:rest-assured-bom:5.3.2
| | \--- org.spockframework:spock-bom:2.3-groovy-4.0
| +--- io.micronaut.testresources:micronaut-test-resources-bom:2.3.0
| | \--- org.testcontainers:testcontainers-bom:1.18.3
| +--- io.micronaut.toml:micronaut-toml-bom:2.1.0
| +--- io.micronaut.tracing:micronaut-tracing-bom:6.2.0
| | +--- io.zipkin.brave:brave-bom:5.16.0
| | +--- io.opentelemetry:opentelemetry-bom:1.31.0
| | | +--- io.opentelemetry:opentelemetry-api:1.31.0 (c)
| | | \--- io.opentelemetry:opentelemetry-context:1.31.0 (c)
| | +--- io.opentelemetry:opentelemetry-bom-alpha:1.31.0-alpha
| | | \--- io.opentelemetry:opentelemetry-bom:1.31.0 (*)
| | +--- io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.31.0
| | | +--- io.opentelemetry:opentelemetry-bom:1.31.0 (*)
| | | \--- io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations:1.31.0 (c)
| | +--- io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.31.0-alpha
| | | +--- io.opentelemetry:opentelemetry-bom:1.31.0 (*)
| | | +--- io.opentelemetry:opentelemetry-bom-alpha:1.31.0-alpha (*)
| | | \--- io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.31.0 (*)
| | +--- io.zipkin.reporter2:zipkin-reporter-bom:2.16.4
| | +--- io.micronaut.tracing:micronaut-tracing-annotation:6.2.0 (c)
| | \--- io.micronaut.tracing:micronaut-tracing-opentelemetry-annotation:6.2.0 (c)
| +--- io.micronaut.validation:micronaut-validation-bom:4.2.0
| | +--- io.micronaut.validation:micronaut-validation:4.2.0 (c)
| | +--- io.micronaut.validation:micronaut-validation-processor:4.2.0 (c)
| | \--- jakarta.validation:jakarta.validation-api:3.0.2 (c)
| \--- io.micronaut.views:micronaut-views-bom:5.0.1
+--- io.micronaut:micronaut-inject-java:4.2.1
| +--- org.slf4j:slf4j-api:2.0.9
| \--- io.micronaut:micronaut-core-processor:4.2.1
| +--- io.micronaut:micronaut-core-reactive:4.2.1
| | +--- org.slf4j:slf4j-api:2.0.9
| | +--- io.micronaut:micronaut-core:4.2.1 -> 4.3.0-20231211.112139-26
| | | \--- org.slf4j:slf4j-api:2.0.9
| | \--- org.reactivestreams:reactive-streams:1.0.4
| +--- org.slf4j:slf4j-api:2.0.9
| +--- io.micronaut:micronaut-inject:4.2.1
| | +--- org.slf4j:slf4j-api:2.0.9
| | +--- jakarta.inject:jakarta.inject-api:2.0.1
| | +--- jakarta.annotation:jakarta.annotation-api:2.1.1
| | \--- io.micronaut:micronaut-core:4.2.1 -> 4.3.0-20231211.112139-26 (*)
| +--- io.micronaut:micronaut-aop:4.2.1
| | +--- org.slf4j:slf4j-api:2.0.9
| | +--- io.micronaut:micronaut-inject:4.2.1 (*)
| | \--- io.micronaut:micronaut-core:4.2.1 -> 4.3.0-20231211.112139-26 (*)
| +--- org.ow2.asm:asm-tree:9.6
| | \--- org.ow2.asm:asm:9.6
| +--- org.ow2.asm:asm:9.6
| +--- org.ow2.asm:asm-commons:9.6
| | +--- org.ow2.asm:asm:9.6
| | \--- org.ow2.asm:asm-tree:9.6 (*)
| \--- com.github.javaparser:javaparser-symbol-solver-core:3.25.6
| \--- com.github.javaparser:javaparser-core:3.25.6
+--- io.micronaut:micronaut-http-validation:4.2.1
| +--- io.micronaut:micronaut-core-processor:4.2.1 (*)
| +--- io.micronaut:micronaut-http-server:4.2.1
| | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.0
| | | \--- org.reactivestreams:reactive-streams:1.0.4
| | +--- org.slf4j:slf4j-api:2.0.9
| | +--- io.micronaut:micronaut-http:4.2.1
| | | +--- io.micronaut:micronaut-context-propagation:4.2.1
| | | | +--- org.slf4j:slf4j-api:2.0.9
| | | | +--- io.micronaut:micronaut-context:4.2.1
| | | | | +--- org.slf4j:slf4j-api:2.0.9
| | | | | +--- io.micronaut:micronaut-inject:4.2.1 (*)
| | | | | \--- io.micronaut:micronaut-aop:4.2.1 (*)
| | | | +--- io.micronaut:micronaut-inject:4.2.1 (*)
| | | | \--- io.micronaut:micronaut-aop:4.2.1 (*)
| | | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.0 (*)
| | | +--- org.slf4j:slf4j-api:2.0.9
| | | +--- io.micronaut:micronaut-context:4.2.1 (*)
| | | \--- io.micronaut:micronaut-core-reactive:4.2.1 (*)
| | \--- io.micronaut:micronaut-router:4.2.1
| | +--- org.slf4j:slf4j-api:2.0.9
| | +--- io.micronaut:micronaut-inject:4.2.1 (*)
| | \--- io.micronaut:micronaut-http:4.2.1 (*)
| +--- io.micronaut:micronaut-websocket:4.2.1
| | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.0 (*)
| | +--- org.slf4j:slf4j-api:2.0.9
| | +--- io.micronaut:micronaut-http:4.2.1 (*)
| | +--- io.micronaut:micronaut-http-client-core:4.2.1
| | | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.0 (*)
| | | +--- org.slf4j:slf4j-api:2.0.9
| | | +--- io.micronaut:micronaut-http:4.2.1 (*)
| | | +--- io.micronaut:micronaut-json-core:4.2.1
| | | | +--- org.slf4j:slf4j-api:2.0.9
| | | | +--- io.micronaut:micronaut-context:4.2.1 (*)
| | | | \--- io.micronaut:micronaut-http:4.2.1 (*)
| | | \--- io.micronaut:micronaut-discovery-core:4.2.1
| | | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.0 (*)
| | | +--- org.slf4j:slf4j-api:2.0.9
| | | \--- io.micronaut:micronaut-context:4.2.1 (*)
| | +--- io.micronaut:micronaut-inject:4.2.1 (*)
| | \--- io.micronaut:micronaut-aop:4.2.1 (*)
| \--- org.slf4j:slf4j-api:2.0.9
+--- io.micronaut.security:micronaut-security-annotations:4.4.0
| +--- io.micronaut:micronaut-inject:4.2.0 -> 4.2.1 (*)
| \--- io.micronaut:micronaut-core-bom:4.2.0 -> 4.2.1 (*)
+--- io.micronaut:micronaut-inject-kotlin:4.2.1
| +--- com.google.devtools.ksp:symbol-processing-api:1.9.21-1.0.15
| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0 -> 1.9.21
| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21
| | | +--- org.jetbrains:annotations:13.0
| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.21 (c)
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.21 (c)
| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.21
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 (*)
| +--- org.slf4j:slf4j-api:2.0.9
| \--- io.micronaut:micronaut-core-processor:4.2.1 (*)
+--- io.micronaut.tracing:micronaut-tracing-opentelemetry-annotation:6.2.0
| +--- io.micronaut:micronaut-inject:4.2.0 -> 4.2.1 (*)
| +--- io.opentelemetry:opentelemetry-bom:1.31.0 (*)
| +--- io.opentelemetry:opentelemetry-bom-alpha:1.31.0-alpha (*)
| +--- io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.31.0 (*)
| +--- io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.31.0-alpha (*)
| +--- io.micronaut:micronaut-core-processor:4.2.0 -> 4.2.1 (*)
| +--- io.micronaut.tracing:micronaut-tracing-annotation:6.2.0
| | +--- io.micronaut:micronaut-inject:4.2.0 -> 4.2.1 (*)
| | +--- io.micronaut:micronaut-core-processor:4.2.0 -> 4.2.1 (*)
| | \--- io.micronaut:micronaut-core-bom:4.2.0 -> 4.2.1 (*)
| +--- io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations:1.31.0
| | \--- io.opentelemetry:opentelemetry-api:1.31.0
| | \--- io.opentelemetry:opentelemetry-context:1.31.0
| \--- io.micronaut:micronaut-core-bom:4.2.0 -> 4.2.1 (*)
+--- io.micronaut:micronaut-core:4.3.0-20231211.112139-26 (*)
+--- io.micronaut.tracing:micronaut-tracing-annotation:6.2.0 (*)
+--- io.micronaut.micrometer:micronaut-micrometer-annotation:5.2.0
| +--- io.micronaut:micronaut-inject:4.2.0 -> 4.2.1 (*)
| +--- io.micrometer:micrometer-core:1.11.5
| | +--- io.micrometer:micrometer-commons:1.11.5
| | +--- io.micrometer:micrometer-observation:1.11.5
| | | \--- io.micrometer:micrometer-commons:1.11.5
| | +--- org.hdrhistogram:HdrHistogram:2.1.12
| | \--- org.latencyutils:LatencyUtils:2.0.3
| +--- io.micronaut:micronaut-aop:4.2.0 -> 4.2.1 (*)
| \--- io.micronaut:micronaut-core-bom:4.2.0 -> 4.2.1 (*)
+--- io.micronaut.validation:micronaut-validation-processor:4.2.0
| +--- io.micronaut.validation:micronaut-validation:4.2.0
| | +--- io.micronaut.reactor:micronaut-reactor:3.1.0 -> 3.2.0
| | | +--- io.micronaut:micronaut-inject:4.2.0 -> 4.2.1 (*)
| | | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.0 (*)
| | | \--- io.micronaut:micronaut-core-bom:4.2.0 -> 4.2.1 (*)
| | +--- io.micronaut:micronaut-inject:4.2.0 -> 4.2.1 (*)
| | +--- io.micronaut:micronaut-core-reactive:4.2.0 -> 4.2.1 (*)
| | +--- jakarta.validation:jakarta.validation-api:3.0.2
| | \--- io.micronaut:micronaut-core-bom:4.2.0 -> 4.2.1 (*)
| +--- io.micronaut:micronaut-inject:4.2.0 -> 4.2.1 (*)
| \--- io.micronaut:micronaut-core-bom:4.2.0 -> 4.2.1 (*)
\--- io.micronaut:micronaut-inject-java -> 4.2.1 (*)
Don't look like it's applied:
+--- io.micronaut:micronaut-inject-java:4.2.1
| +--- org.slf4j:slf4j-api:2.0.9
| \--- io.micronaut:micronaut-core-processor:4.2.1
Precessors need to change the version.
Have you tried to force it like I posted?
doesn't look like you have updated the dependency graph correctly
+--- io.micronaut:micronaut-inject-java:4.2.1
| +--- org.slf4j:slf4j-api:2.0.9
| \--- io.micronaut:micronaut-core-processor:4.2.1
Is still referenced, these need to refer to the 4.3 snapshot
Thanks, let me pin micronaut-core-processor version to SNAPSHOT and I will post an update
That was it. kaptKotlin timing is great on the 4.3.0-SNAPSHOT. 4.3.0-SNAPSHOT: 15 sec 4.2.1: 3 min 4.1.6: 30 sec This is awesome!
Perfect! Can you try KSP? 4.1 vs 4.3?
Unfortunately, we can't fully build our project with KSP because of https://github.com/micronaut-projects/micronaut-core/issues/9764 I did post an update on 4.2.1 release here though (on the part of KSP build that I can observe): https://github.com/micronaut-projects/micronaut-core/issues/9750
Ok, it should be faster, too. I am closing this one.
Actual Behaviour
kaptKotlin
gradle building step with Micronaut Platform 4.2.0 takes 5x the time that it takes with Platform 4.1.6 on the same source code.CPU Sampling profile of kaptKotlin task for Micronaut 4.1.6: micronaut-4.1.nps.zip
CPU Sampling profile of kaptKotlin task for Micronaut 4.2.0 on the same sources: micronaut-4.2.nps.zip
Potential culprit:
Change in hot methods:
Version
Micronaut Platform 4.1.6 -> 4.2.0