IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

Vous �tes nouveau sur Developpez.com ? Cr�ez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et �tre connect� pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Cr�ez-en un en quelques instants, c'est enti�rement gratuit !

Si vous disposez d�j� d'un compte et qu'il est bien activ�, connectez-vous � l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oubli� ?
Cr�er un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apple migre son service de surveillance des mots de passe de Java vers Swift et obtient une augmentation de 40 % des performances,
Avec une r�duction de 85 % du nombre de lignes de code

Le , par Mathis Lucas

99PARTAGES

6  0 
Apple migre son service de surveillance des mots de passe de Java vers Swift et obtient une augmentation de 40 % des performances
avec une r�duction de 85 % du nombre de lignes de code

Apple a annonc� avoir migr� avec son service de surveillance des mots de passe de Java � Swift. L'�quipe responsable a ajout� que cette migration a permis une augmentation de d�bit de 40 % et une r�duction de 50 % de l'utilisation de la capacit� de Kubernetes. La r��criture a permis de r�soudre les probl�mes de latence du ramasse-miettes de Java et de consommation �lev�e de la m�moire, Swift offrant des temps de r�ponse inf�rieurs � la milliseconde et des capacit�s de d�marrage � froid plus rapides. Elle aurait �galement permis de r�duire de 85 % le nombre de lignes de code tout en g�rant des milliards de requ�tes quotidiennes pour la d�tection des br�ches.

Le service de surveillance des mots de passe d'Apple est int�gr� dans l'�cosyst�me plus large de l'application � Mot de passe �. Il v�rifie en toute s�curit� si les informations d'identification sauvegard�es d'un utilisateur sont apparues dans des violations de donn�es connues, sans r�v�ler des informations priv�es � Apple. Il traite des milliards de demandes par jour, en effectuant des comparaisons cryptographiques � l'aide de protocoles pr�servant la vie priv�e.

Les probl�mes techniques li�s � l'ancienne version du service

Initialement �crit en Java, le service pr�sentait des limites de performance et de gestion de la m�moire. Selon l'�quipe d'Apple, en d�pit des optimisations avanc�es de la machine virtuelle Java (JVM), l'outil ne r�pondait pas de mani�re optimale aux exigences croissantes de mise � l'�chelle et de rapidit�. Selon l'�quipe d'Apple, la collecte de d�chets provoquait des temps de pause impr�visibles en cas de charge, ce qui d�gradait la coh�rence de la latence.


Les frais g�n�raux de d�marrage (initialisation de la JVM, chargement des classes et compilation juste � temps (JIT)) ralentissaient la capacit� du syst�me � �voluer en temps r�el. En outre, l'empreinte m�moire du service, qui atteint souvent des dizaines de gigaoctets par instance, r�duit l'efficacit� de l'infrastructure et augmente les co�ts d'exploitation. Selon l'�quipe d'Apple, la r��criture du service avait pour but de parvenir aux r�sultats suivants :

  • optimiser les performances et l'�volutivit� du service ;
  • r�duire le d�lai de d�marrage des instances ;
  • contourner les limites pos�es par la gestion de la m�moire en Java (notamment le ramasse-miettes) ;
  • profiter de la syntaxe expressive et de la s�curit� offerte par le langage Swift.


� Pendant des ann�es, nous avons utilis� Java pour alimenter des services critiques � grande �chelle en raison de sa stabilit� et de ses performances �prouv�es. Mais l'approche de gestion de la m�moire de Java ne correspond plus � nos exigences croissantes et � nos objectifs d'efficacit� �, a �crit l'�quipe.

Les raisons qui ont motiv� le choix de Swift pour la r��criture

D�velopp� � l'origine comme un langage c�t� client pour les plateformes Apple, Swift s'est depuis �tendu � des cas d'utilisation c�t� serveur. L'�quipe d'ing�nieurs d'Apple a choisi Swift non seulement pour son alignement sur l'�cosyst�me, mais aussi pour sa capacit� � offrir des performances constantes dans les environnements � forte intensit� de calcul. La r��criture s'est �galement appuy�e sur Vapor, un framework Web Swift tr�s r�pandu.


D'autres paquets personnalis�s ont �t� mis en �uvre pour g�rer les op�rations sur la courbe elliptique, l'audit cryptographique et les intergiciels sp�cifiques au domaine de la surveillance des mots de passe. � Au lieu de simplement augmenter les ressources mat�rielles, nous recherchions un langage plus efficace pour soutenir notre croissance tout en r�duisant la charge des serveurs �, a expliqu� l'�quipe d'Apple dans un r�cent billet de blogue.

Citation Envoy� par L'�quipe d'Apple


Avant de chercher un langage de remplacement, nous avons cherch� des moyens d'ajuster la JVM pour obtenir les performances requises. Le ramasse-miettes G1 de Java a att�nu� certaines limites des ramasse-miettes pr�c�dents en introduisant des fonctionnalit�s telles que des temps de pause pr�visibles, une collecte bas�e sur les r�gions et un traitement simultan�.

Cependant, m�me avec ces avanc�es, la gestion du ramasse-miettes � grande �chelle reste un d�fi en raison de probl�mes tels que les pauses GC prolong�es sous des charges �lev�es, l'augmentation de la charge de travail li�e aux performances et la complexit� du r�glage fin pour des charges de travail diverses.

La gestion d�terministe de la m�moire de Swift, bas�e sur le comptage des r�f�rences plut�t que sur la collecte des d�chets, a �limin� les pics de latence caus�s par les pauses de la collecte des d�chets. Cette coh�rence s'est av�r�e essentielle pour un syst�me � faible latence � l'�chelle. Apr�s la r��criture, Apple a signal� des temps de latence inf�rieurs � la milliseconde dans le 99,9e percentile et une baisse spectaculaire de l'utilisation de la m�moire.

Gains techniques et op�rationnels obtenus apr�s la r��criture

Selon l'�quipe, la migration vers Swift s�est r�v�l�e tr�s b�n�fique. Les instances Swift consommaient des centaines de m�gaoctets, contre des dizaines de gigaoctets avec Java. Les temps de d�marrage se sont �galement am�lior�s. Sans surcharge d'initialisation de la JVM ni �chauffement JIT, les services Swift peuvent d�marrer � froid plus rapidement, ce qui r�pond aux exigences d'Apple en mati�re de mise � l��chelle automatique globale.

Concr�tement, le d�bit du service a augment� de 40 %, la consommation m�moire a diminu� de pr�s de moiti�, et la capacit� de traitement par instance a �t� nettement am�lior�e. En parall�le, le code source est devenu beaucoup plus concis, avec environ 85 % de lignes de code en moins compar� � l'impl�mentation Java, ce qui facilite la maintenance et la lecture. Ce qui fait �cho aux critiques de longue date selon lesquelles Java est un langage verbeux.

Cette migration marque un tournant. Swift d�montre qu'il est capable de soutenir des services cloud � tr�s grande �chelle, bien au-del� de son usage traditionnel c�t� client. Cela illustre aussi la volont� d'Apple de rationaliser ses technologies internes autour de langages plus modernes et mieux adapt�s � ses besoins sp�cifiques. Selon l'�quipe, la s�curit� est un autre domaine dans lequel Swift adopte une approche distinctive par rapport � Java.

� Lorsque vous r��crivez un produit dans une nouvelle pile, vous le cr�ez pratiquement � partir de z�ro. Vous faites les choses correctement et vous n'apportez pas tout le patchwork et la dette technique. C'est ce qui a provoqu� cette acc�l�ration. Ce n'est pas le changement de langue �, a �crit un critique.

Conclusion

La migration d'Apple refl�te une tendance plus large : le passage � des langages orient�s vers la performance pour des services fonctionnant � une tr�s grande �chelle. Meta utilise Rust depuis longtemps, depuis des syst�mes de gestion de code source ultraperformants jusqu'aux langages de programmation pour la blockchain. Netflix a introduit Rend, un proxy haute performance �crit en Go, pour prendre le relais d'un client bas� sur Java interagissant avec Memcached.

AWS s'appuie de plus en plus sur Rust dans les services o� les performances d�terministes et la faible utilisation des ressources am�liorent l'efficacit� de l'infrastructure. Bien que cela ne signifie pas que Java et les langages similaires sont en d�clin, il est de plus en plus �vident qu'� l'extr�mit� sup�rieure des exigences de performance, les entreprises et les ing�nieurs logiciels constatent que les runtimes � usage g�n�ral ne suffisent plus d�sormais.

L'ann�e derni�re, le navigateur Ladybird a annonc� qu'il commencera � utiliser le langage Swift au lieu de C++. Selon le d�veloppeur Andreas Kling, Swift offre une s�curit� contre la course � la m�moire et aux donn�es, et est un langage moderne avec une ergonomie solide. Il poss�de une meilleure interop�rabilit� avec le C++ pour une adoption progressive. L'�quipe a d�clar� qu'elle adoptera Swift apr�s la sortie de Swift 6 de sa phase b�ta.

Source : billet de blogue de l'�quipe d'Apple

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous des gains de performances obtenus apr�s la migration du service de Java vers Swift ?
L'industrie adopte de plus en plus des langages orient�s vers la performance et la s�curit� de la m�moire comme Rust et Swift. Qu'en pensez-vous ?

Voir aussi

Oracle annonce la disponibilit� de Java 24, apportant des am�liorations en mati�re de performance, de stabilit� et de s�curit� � la plateforme pour permettre aux entreprises d'acc�l�rer leur croissance

Le navigateur Ladybird commencera � utiliser le langage Swift au lieu de C++ cet automne, car Swift offre une s�curit� de la m�moire et est �galement un langage moderne avec une ergonomie solide

Au-del� de Docker : Apple d�voile discr�tement "Container", un framework Swift open source pour faciliter l'ex�cution de containers Linux sur macOS et am�liorer la performance et la s�curit�
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

Une erreur dans cette actualit� ? Signalez-nous-la !

Avatar de eclesia
R�dacteur https://www.developpez.com
Le 20/06/2025 � 1:10
Le code java fait par apple devait �tre particuli�rement horrible pour avoir un tel ecart de performance.

A mais oui, swift c'est le nouveau language d'apple, quel coincidance.

Ca manque cruellement d'objectivit�, qu'est ce que ca vient faire ici ?
5  0 
Avatar de calvaire
Expert �minent https://www.developpez.com
Le 20/06/2025 � 10:15
Citation Envoy� par eclesia Voir le message
Le code java fait par apple devait �tre particuli�rement horrible pour avoir un tel ecart de performance.

A mais oui, swift c'est le nouveau language d'apple, quel coincidance.

Ca manque cruellement d'objectivit�, qu'est ce que ca vient faire ici ?
je pense pas qu'apple ment sur le gain mais qu'ils comparent du vieux java avec du swift moderne.
java a fait de gros progr�s niveau perf assez r�cemment, il y'a quelques ann�es c'�tait inutilisable en microservice mais aujourd'hui je le re-utilise avec la derni�re version et Spring AOT + GraalVM Native.

c'est comme migrer de php5 a du nodejs ou java avec +40% de perf, c'est assez facile quand on sait que php7 a consid�rablement am�liorer les perfs.

Faire du code performant en java n�cessite une bonne maitrise, c'est pas un langage "plug and play", je n'ai jamais cod� en swift mais c'est peut etre plus performant de base sans utiliser de lib externe.
2  1 
Avatar de ValCapri
Membre habitu� https://www.developpez.com
Le 04/08/2025 � 3:11
Citation Envoy� par calvaire Voir le message
je pense pas qu'apple ment sur le gain mais qu'ils comparent du vieux java avec du swift moderne.
java a fait de gros progr�s niveau perf assez r�cemment, il y'a quelques ann�es c'�tait inutilisable en microservice mais aujourd'hui je le re-utilise avec la derni�re version et Spring AOT + GraalVM Native.

c'est comme migrer de php5 a du nodejs ou java avec +40% de perf, c'est assez facile quand on sait que php7 a consid�rablement am�liorer les perfs.

Faire du code performant en java n�cessite une bonne maitrise, c'est pas un langage "plug and play", je n'ai jamais cod� en swift mais c'est peut etre plus performant de base sans utiliser de lib externe.
Pour avoir coder dans plusieurs langages dont Java, Swift, Kotlin et Python.

Java s'est en effet beaucoup am�lior� en termes de performances et de gestion de la m�moire notamment avec le ZGC et l'AOT. Je n'ai pas utilis� GraalVM Native car toutes les biblioth�ques que l'on utilisaient n'�tait pas compatible mais clairement on a remarqu� du mieux en passant successivement de Java 8 � Java 11, puis Java 17 et enfin Java 21. Kotlin est aussi tr�s performant notamment avec ces coroutine mais il faut faire attention dans certaines circonstances.

Swift est pour moi le langage le plus rapide dans cette liste mais il faut faire attention aux fuites m�moire et � bien l'utiliser (les structs vs class). Et tout ce qui est ORL n'est pas au niveau de Java notamment. Et la serialization/deserialization qu'ils vont mieux parfois �crire � la main.

Et ne parlons pas de Python, qui est tr�s lent mais si heureusement,il progresse de plus en plus. Et FastAPI et autres outils de machines learning aident beaucoup le langage.

Mais bon, Java et Kotlin disposent de beaucoup plus d'outils et d'un �cosyst�me plus large que Swift.
0  0