De meilleures performances avec Kotlin 1.6.20 M1

Par:
fredericmazue

jeu, 10/03/2022 - 13:38

JetBrains a publié la première préversion de Kotlin 1.6.20. Cette version apporte entre autres de nombreuses améliorations de performances.

Tout d'abord, JetBrains a travaillé à améliorer le temps de compilation du nouveau backend JVM IR.  Ainsi a été ajouté le mode backend expérimental JVM IR pour compiler tous les fichiers d'un module en parallèle. La compilation parallèle peut réduire le temps total de compilation jusqu'à 15%, selon JetBrains. L'éditeur précise que cette parallélisation n'est utile que lorsque la construction du projet n'est pas suffisamment parallélisée par un outil de construction tel que Gradle. En revanche, si un projet se compose de nombreux petits modules et a déjà une construction parallélisée, l'ajout d'une autre couche de parallélisation peut nuire aux performances.

Arrive aussi un nouveau mode de compilation incrémentale. Dans ce mode, le compilateur met en cache les résultats des compilations précédentes au niveau du module. Il utilise ensuite les résultats de compilation mis en cache pour les fichiers source inchangés lors des compilations suivantes, ce qui les rend les opérations plus rapides, en particulier dans le cas de petites modifications.

Enfin, Jetbrains travaille à améliorer les performances de Kotlin/Native. Ainsi, Kotlin 1.6.20 M1 apporte des mises à jour de performances qui affectent le LLVM IR généré. Selon les benchmarks de JetBrains, les gains moyens de performances sont les suivants :

  • 15% de réduction du temps d'exécution
  • Réduction de 20 % de la taille du code des binaires de version et de débogage
  • Réduction de 26 % du temps de compilation des binaires de publication

Toujours selon JetBrains, ces améliorations permettent également de réduire de 10% le temps de compilation d'un binaire de débogage sur un grand projet.