Comments (7)
Thanks for posting your findings @trevjonez!
I can't say I'm too surprised by this since we've had years to optimize for Javac but haven't really done any optimization for KSP yet (so far we've only been focused on correctness).
I can take a look through the flame charts and see if anything sticks out.
from dagger.
I am fairly certain with the --rurun flag these should be effectively the same as a clean run of the ksp/kapt tasks. I did it that way to try and get the flame chart to have as little extra noise as possible given the tracing is picking up everything in gradle too.
That said I'll play with the scenarios a bit more tomorrow and setup clean + incremental just to be sure.
from dagger.
One thing I noticed is that the KAPT flame chart looks like there's incremental processing going on (IncrementalProcessor.process(...)
).
It might help to first compare both of them using a clean build with no incremental processing. That way we can rule out if the regression only occurs for incremental processing or also in clean builds.
from dagger.
I still owe you some repro projects but I did end up rerunning my out of process benchmarks with the latest KSP (1.0.16) and the time is at least consistent now so the time balloon on 1.9.21-1.0.15 was caused by the memory leak in KSP.
from dagger.
@trevjonez just to clarify, you're seeing the regression in KSP build times are gone with KSP 1.0.16, meaning it's about the same as your build times with Javac now?
from dagger.
No it still is a big regression from KAPT. but initially it would take like 15 minutes on a clean KSP build then second run on hot daemons would be 30+ and usually OOM crash out before a third run could finish. It was an obvious indication of a memory leak but someone else reported it to KSP and they fixed leak that so now we should be able to get more accurate timing info for the dagger processor optimization.
from dagger.
Okay, thanks for the clarification on that.
from dagger.
Related Issues (20)
- Firebase.messaging.subscribeToTopic("weather") .addOnCompleteListener { task -> var msg = "Subscribed" if (!task.isSuccessful) { msg = "Subscribe failed" } Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() } HOT 1
- [KSP] FileAlreadyExistsException: Hilt fails during multi-round processing due to recreating files
- Can't add Hilt to a multiplatform project HOT 4
- Build Fails with "file not found" on task transformDebugClassesWithAsm AGP 8.3.0-alpha11 HOT 1
- Dagger should not allow injection into Kotlin protected fields
- KSP: InjectProcessingStep was unable to process 'glide' because 'error.NonExistentClass' could not be resolved. HOT 6
- Cannot use legacy dagger.spi.BindingGraphPlugin while compiling with KSP HOT 1
- CVE-2976 HOT 1
- KSP: Consistently failing build in first run and success on second run HOT 11
- Lots of warnings with KSP related to incremental compilation HOT 8
- ComponentProcessingStep was unable to process 'com.example.lab0.App_HiltComponents.SingletonC' because '<error>' could not be resolved. HOT 8
- getViewModel crash intermittently with NullPointerException / IllegalArgumentException HOT 3
- [KSP] internal @Provides method produces non-compiling code using dagger-android HOT 5
- [KSP] dagger-android unresolved generated subcomponent for internal module methods used across gradle modules HOT 3
- Unable to build with 2.48.1 - 2.49 and 2.50 HOT 2
- KSP processing does not see member injections from typealiased superclass in 2.50 HOT 2
- Regression "warning: [cast] redundant cast to Map" when updating from 2.49 to 2.50 HOT 1
- Dagger-Hilt 2.49: Activity onCreate() and onDestroy() code is generated, but our base Activity class has these final HOT 3
- Dagger 2.50 produces code that calls deprecated method HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dagger.