micronaut-projects / micronaut-core

Micronaut Application Framework
http://micronaut.io
Apache License 2.0
6.09k stars 1.07k forks source link

KAPT: kaptKotlin Performance regression in Micronaut Core 4.2.0 #10145

Closed Spikhalskiy closed 11 months ago

Spikhalskiy commented 11 months ago

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: Screenshot 2023-11-21 at 5 00 37 PM

Change in hot methods:

Screenshot 2023-11-21 at 5 38 46 PM Screenshot 2023-11-21 at 5 39 21 PM

Version

Micronaut Platform 4.1.6 -> 4.2.0

Spikhalskiy commented 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.

dstepanov commented 11 months ago

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.

Spikhalskiy commented 11 months ago

@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.

dstepanov commented 11 months ago

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.

Spikhalskiy commented 11 months ago

@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.

Spikhalskiy commented 11 months ago

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

Spikhalskiy commented 11 months ago

@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.

dstepanov commented 11 months ago

Hmm, is it better than before?

dstepanov commented 11 months ago

Please try to profile

dstepanov commented 11 months ago

Make sure you use:

configurations.all {
  resolutionStrategy.eachDependency { details ->
    if (details.requested.group == 'io.micronaut') {
      details.useVersion "4.3.0-SNAPSHOT"
    }
  }
}
Spikhalskiy commented 11 months ago

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 (*)
dstepanov commented 11 months ago

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?

graemerocher commented 11 months ago

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

Spikhalskiy commented 11 months ago

Thanks, let me pin micronaut-core-processor version to SNAPSHOT and I will post an update

Spikhalskiy commented 11 months ago

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!

dstepanov commented 11 months ago

Perfect! Can you try KSP? 4.1 vs 4.3?

Spikhalskiy commented 11 months ago

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

dstepanov commented 11 months ago

Ok, it should be faster, too. I am closing this one.