Kotlin 1.9.20

Par:
fredericmazue

ven, 10/11/2023 - 14:25

JetBrains a annoncé la disponibilité d'une nouvelle mouture de son langage maison : Kotlin 1.9.20. Cette version, riche, se distingue principalement à nos yeux par la stabilité de Kotlin Multiplatforn et l'arrivée du nouveau compilateur K2 en version bêta, ainsi que d'un nouvel allocateur mémoire plus efficace.

Statibilité de Kotlin Multiplatform

La version 1.9.20 marque une étape importante dans l'évolution de Kotlin, souligne JetBrains. Kotlin Multiplatform est devenu stable. Cette promotion signifie que la technologie peut être utilisée en toute sécurité dans vos projets et prête pour la production. Cela signifie également que le développement ultérieur de Kotlin Multiplatform se poursuivra conformément aux règles strictes de compatibilité ascendante de JetBrains.

Il est à noter que certaines fonctionnalités avancées de Kotlin Multiplatform sont encore en évolution. Lorsque vous utilisez celles-ci, vous recevez un avertissement décrivant l'état de stabilité actuel de la fonctionnalité avec laquelle vous travaillez. 

Compilateur Kotlin K2 bêta

L'équipe Kotlin de JetBrains continue de stabiliser le nouveau compilateur K2, qui doit à terme apporter des améliorations majeures des performances, accélérer le développement de nouvelles fonctionnalités de langage, unifier toutes les plates-formes prises en charge par Kotlin et fournir une meilleure architecture pour les projets multi plates-formes. À l'heure actuelle, K2 est en version bêta pour toutes les cibles. L'équipe JetBrains a dit avoir assuré la qualité du nouveau compilateur en compilant avec succès des dizaines de projets utilisateurs et internes. Ce stade bêta signifie que vous pouvez désormais essayer K2 dans n'importe quel projet Kotlin.

Un nouvel allocateur mémoire

Kotlin 1.9.20 est livré avec un nouvel allocateur mémoire qui est activé par défaut. Il est conçu pour remplacer l'allocateur par défaut précédent, mimaloc afin de rendre le garbage collection plus efficace et d'améliorer les performances d'exécution du gestionnaire de mémoire Kotlin/Native .

Le nouvel allocateur personnalisé divise la mémoire système en pages, permettant un balayage indépendant dans un ordre consécutif. Chaque allocation devient un bloc de mémoire dans une page et la page garde une trace de la taille des blocs. Différents types de pages sont optimisés pour différentes tailles d'allocation. La disposition consécutive des blocs de mémoire garantit une itération efficace sur tous les blocs alloués.

Lorsqu'un thread alloue de la mémoire, il recherche une page appropriée en fonction de la taille d'allocation. Les threads conservent un ensemble de pages pour différentes catégories de taille.

Le nouvel allocateur permet simultanément plusieurs espaces d'allocation indépendants, ce qui permettra à l'équipe Kotlin d'expérimenter différentes mises en page pour améliorer encore davantage les performances.