quality and performance kotlin 1 4 in intellij ides anton
play

Quality and Performance Kotlin 1.4 in IntelliJ IDEs Anton - PowerPoint PPT Presentation

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


  1. Kotlin 1.4 Online Event Quality and Performance – Kotlin 1.4 in IntelliJ IDEs Anton Yalyshev @anton_yalyshev October 12, 2020

  2. 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%

  3. 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%

  4. The most important devX components Smooth typing ● IDE responsiveness ● Code completion ● Code highlighting ● Navigation and Find Usages ● Indexing ●

  5. 1.3.60 IDE Performance: Smooth typing ● IDE responsiveness ● Code completion ● Code highlighting ● Navigation and ● Find Usages Indexing ●

  6. 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 0200 ms 200500 ms 5001000 ms 1000 ms Indexing ● 1.3.60

  7. 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 0200 ms 200500 ms 5001000 ms 1000 ms Indexing ● 1.3.60 1.3.70

  8. Perception of response times 100200 ms: instant ● 5001000 ms: immediate ● 25 sec: keeps attention ● 710 sec: keeps context ●

  9. 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 ●

  10. 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 ●

  11. Average completion times experienced by users in .gradle.kts 50% 40% 30% 20% 10% 0% 0500 ms 5001000 ms 10001500 ms 1500 ms 1.3.60 1.3.70

  12. 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 01 sec 15 sec 510 sec 10 sec Indexing ● Previous Current Test Framework: github.com/JetBrains/kotlin/tree/master/idea/performanceTests

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

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

  15. 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 ●

  16. 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 ●

  17. Quality Reducing plugin exceptions 1.52 times with each release ● Stability of the Debugger, Formatter, Move Refactoring and more ● Debugger for coroutines ●

  18. New Project Wizard

  19. Light editing

  20. IntelliJ LightEdit mode

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

  22. One important announcement

  23. IntelliJ IDEA and Kotlin are getting closer Kotlin repository IJ plugin IntelliJ platform repository

  24. 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 ●

  25. Thanks! Have a nice Kotlin @anton_yalyshev

Recommend


More recommend