23/10/2017

Facebook rend son outil de déboggage en programmation concurrente open source

L'outil de déboggage en programmation concurrente RacerD prend en charge le langage Java. Il devrait supporter bientôt le langage de la famille C.

La maîtrise de la programmation concurrente est devenue particulièrement critique pour les développeurs avec la croissance continuedu nombre de processeurset decœursdans les plateformes matériellescibles.Pour bénéficier de toute la puissance des machines modernes, nos applicationsdoivent être capables de tirer parti de ces architectures et donc d’effectuer plusieurs tâches en parallèle.Seulement, cette technique de programmationrend très difficiles la détection des anomalies et leurs corrections.

RacerD pour le débogage

RacerD prend uniquement le code Java pour le moment, mais Facebook annonce que d’autres langages (Java, C++, Objective-C, C, etc.) suivront. RacerD est basé sur une technique dénommée « logique de séparation concurrente ». D’après Facebook, la mise en œuvre de cette dernière permet de détecter l’accès concurrent à des données par des processus sans qu’il soit nécessaire que le programme qui provoque leur activation soit exécuté. La technique a aussi un impact sur le temps nécessaire pour mener une telle analyse en comparaison aux méthodes dites par « force brute ». D’après Facebook, l’outil est capable d’analyser un million de lignes de code mettant en œuvre des accès concurrents en 15 minutes là où il faudrait 3,4 millions d’années pour analyser 80 lignes du même code par la force brute.

RacerD a été testé en production sur l’application Android liée au fil d’actualités de Facebook en 2016 et a permis de détecter 1000 bogues d’accès concurrents aux données avant que la version multiprocessus du fil d’actualités ne soit lancée. Le passage à la version multiprocessus aurait mené à une augmentation de 5 % des performances de l’application Android liée au fil d’actualités. Toutefois, il convient de souligner que dans sa forme actuelle, l’outil a été taillé sur mesure pour donner satisfaction aux ingénieurs de l’équipe de développement Android dans de brefs délais. Il serait donc prudent de l’utiliser en combinaison à d’autres pour contourner les failles qui, logiquement, sommeillent encore en son sein.

Source : Facebook

Actualités