Skip to content
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

KAPT: kaptKotlin Performance regression in Micronaut Core 4.2.0 #10145

Closed
Spikhalskiy opened this issue Nov 21, 2023 · 18 comments
Closed

KAPT: kaptKotlin Performance regression in Micronaut Core 4.2.0 #10145

Spikhalskiy opened this issue Nov 21, 2023 · 18 comments
Assignees
Labels
type: improvement A minor improvement to an existing feature
Milestone

Comments

@Spikhalskiy
Copy link
Contributor

Spikhalskiy commented Nov 21, 2023

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
Copy link
Contributor Author

Spikhalskiy commented Dec 6, 2023

@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
Copy link
Contributor

I think it was caused by e1a990b 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
Copy link
Contributor Author

@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
Copy link
Contributor

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
Copy link
Contributor Author

Spikhalskiy commented Dec 6, 2023

@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
Copy link
Contributor Author

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
Copy link
Contributor Author

Spikhalskiy commented Dec 11, 2023

@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
Copy link
Contributor

Hmm, is it better than before?

@dstepanov
Copy link
Contributor

Please try to profile

@dstepanov
Copy link
Contributor

Make sure you use:

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

@Spikhalskiy
Copy link
Contributor Author

Spikhalskiy commented Dec 11, 2023

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor Author

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

@Spikhalskiy
Copy link
Contributor Author

Spikhalskiy commented Dec 11, 2023

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
Copy link
Contributor

Perfect!
Can you try KSP? 4.1 vs 4.3?

@Spikhalskiy
Copy link
Contributor Author

Unfortunately, we can't fully build our project with KSP because of #9764
I did post an update on 4.2.1 release here though (on the part of KSP build that I can observe): #9750

@dstepanov
Copy link
Contributor

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

@dstepanov dstepanov added this to the 4.3.0 milestone Dec 11, 2023
@dstepanov dstepanov added the type: improvement A minor improvement to an existing feature label Dec 11, 2023
@sdelamo sdelamo moved this to Done in 4.3.0 Release Jan 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: improvement A minor improvement to an existing feature
Projects
No open projects
Status: Done
Development

No branches or pull requests

3 participants