Kotlin 1.4 Online Event Quality and Performance – Kotlin 1.4 in IntelliJ IDEs Anton Yalyshev @anton_yalyshev October 12, 2020
Activities and events Indexing 28% 5% Overall lost time Build 16% VCS events 3% VFS refresh 4% Project import 18% 95% Active session UI lags 31%
Activities and events Indexing 28% Build 16% 31% UI lags 28% Indexing VCS events 3% 16% Build VFS refresh 4% 3% VCS events Project import 18% 18% Project import 4% VFS refresh UI lags 31%
The most important devX components Smooth typing ● IDE responsiveness ● Code completion ● Code highlighting ● Navigation and Find Usages ● Indexing ●
1.3.60 IDE Performance: Smooth typing ● IDE responsiveness ● Code completion ● Code highlighting ● Navigation and ● Find Usages Indexing ●
1.3.60 Fast completion IDE Performance: Percents of Users who have such Average Completion Time Smooth typing ● 58.4% 60% IDE responsiveness ● 34.0% 40% Code completion ● Code highlighting ● 20% 5.7% 1.8% Navigation and ● 0% Find Usages 0200 ms 200500 ms 5001000 ms 1000 ms Indexing ● 1.3.60
1.3.60 1.3.70 Fast completion Faster Completion IDE Performance: Percents of Users who have such Average Completion Time Smooth typing ● 70.3% 80% IDE responsiveness ● 58.4% 60% Code completion ● 34.0% 40% 25.1% Code highlighting ● 20% 5.7% 3.2% 1.8% 1.3% Navigation and ● 0% Find Usages 0200 ms 200500 ms 5001000 ms 1000 ms Indexing ● 1.3.60 1.3.70
Perception of response times 100200 ms: instant ● 5001000 ms: immediate ● 25 sec: keeps attention ● 710 sec: keeps context ●
1.3.60 1.3.70 Fast completion Faster completion inc. caches IDE Performance: Smooth typing ● IDE responsiveness ● Code completion ● Code highlighting ● Navigation and ● Find Usages Indexing ●
1.3.60 1.3.70 Fast completion Faster completion inc. caches J/K interop IDE Performance: Smooth typing ● .kt IDE responsiveness ● Code completion ● Code highlighting ● Navigation and ● Find Usages .java Indexing ●
Average completion times experienced by users in .gradle.kts 50% 40% 30% 20% 10% 0% 0500 ms 5001000 ms 10001500 ms 1500 ms 1.3.60 1.3.70
1.3.60 1.3.70 IJ 2020.1 Fast completion Faster completion Highlighting inc. caches algorithm J/K interop IDE Performance: First-time file highlighting times in a large project Smooth typing ● 74.3% 80% Responsiveness ● 59.5% 60% Code completion ● 40% 29.6% 20.3% Code highlighting ● 20% 7.3% 3.9% 3.3% 1.4% Navigation and ● 0% Find Usages 01 sec 15 sec 510 sec 10 sec Indexing ● Previous Current Test Framework: github.com/JetBrains/kotlin/tree/master/idea/performanceTests
1.3.60 1.3.70 IJ 2020.1 IJ 2020.2 Fast completion Faster completion Highlighting inc. caches algorithm J/K interop IDE Performance: 31% UI lags 28% Indexing Smooth typing ● Responsiveness ● 16% Build Code completion ● 18% Project import Code highlighting ● 3% VCS events Navigation and ● Find Usages Indexing ● 4% VFS refresh
1.3.60 1.3.70 IJ 2020.1 IJ 2020.2 Fast completion Faster completion Highlighting Shared Indexes inc. caches algorithm J/K interop IDE Performance: Smooth typing ● Responsiveness ● Code completion ● Code highlighting ● Navigation and ● Find Usages Indexing ● How to: jetbrains.com/help/idea/shared-indexes.html
1.3.60 1.3.70 IJ 2020.1 IJ 2020.2 1.4 Fast completion Faster completion Highlighting Shared Indexes Fixed lots of: inc. caches algorithm Freezes J/K interop Deadlocks Memory/CPU cons. IDE Performance: Smooth typing ● Responsiveness ● Code completion ● Code highlighting ● Navigation and ● Find Usages Indexing ●
1.3.60 1.3.70 IJ 2020.1 IJ 2020.2 1.4 Fast completion Faster completion Highlighting Shared Indexes Fixed lots of: inc. caches algorithm Freezes J/K interop Deadlocks Memory/CPU cons. IDE Performance: 1. Issue tracker: kotl.in/issue Smooth typing 2. Attach diagnostic info: jb.gg/ij-perf-reporting ● Responsiveness 3. Tell us what you were doing at the time ● Code completion ● Code highlighting ● Navigation and ● Find Usages Indexing ●
Quality Reducing plugin exceptions 1.52 times with each release ● Stability of the Debugger, Formatter, Move Refactoring and more ● Debugger for coroutines ●
New Project Wizard
Light editing
IntelliJ LightEdit mode
What’s next? Continue investing in the speed of: ● Code completion and highlighting ○ Navigation and Find Usages ○ IDE stability and quality of features ● Cross-language inline and change signature refactorings ● in Java/Kotlin mixed projects Integration with the new Compiler Frontend ● Our roadmap: https://kotl.in/roadmap
One important announcement
IntelliJ IDEA and Kotlin are getting closer Kotlin repository IJ plugin IntelliJ platform repository
IntelliJ and Kotlin are getting closer Better tooling parity ● Single release cycle for Kotlin plugin and IntelliJ IDEA ● More opportunities for contribution ● Amplifies IntelliJ Kotlin plugin development ●
Thanks! Have a nice Kotlin @anton_yalyshev
Recommend
More recommend