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 !

Facebook lève le voile sur son Framework Folly Futures
Qui facilite la programmation asynchrone C++ en utilisant le pattern Promise/Future

Le , par Siguillaume

0PARTAGES

1  0 
qui facilite la programmation asynchrone C++ en utilisant le pattern Promise/Future

C’est en 2012 que Facebook présente et rend Open Source Folly, sa librairie C++ qu’il utilise dans le développement de ces applications internes. Cette librairie qui étend les possibilités du langage, a fait ses preuves dans l’optimisation des ressources systèmes telles que la consommation de la mémoire pendant l’exécution des applications.

Aujourd’hui, Facebook dévoile un nouveau pan de Folly. Il s’agit de Folly Futures, un Framework qui implémente les fonctions Futures de C++ 11. En effet, le langage orienté objet est venu, dans sa version 11, avec de meilleures possibilités pour exploiter le multithreading intégré dans les processeurs de plusieurs cœurs. Ce sont ces fonctionnalités que Facebook a exploité et amélioré pour faciliter l’expérience du développeur dans l’écriture du code avec son Framework.

Folly Futures vient faciliter la tâche au développeur C++ dans l’écriture du code asynchrone. Il s’agit ici de permettre au développeur d’avoir dans un même code source, plusieurs parties qui peuvent s’exécuter simultanément avec une possibilité d’interactions entre les résultats retournés par ces différentes parties, sans aucun blocage.

De façon classique, lorsqu’une fonction effectue fait un appel à une autre, et a besoin du résultat de cette dernière pour continuer son opération, celle-ci est mise dans un état latent jusqu’à la disponibilité du résultat attendu, ce qui entraine couramment des blocages de l’IU. Cette logique est qualifiée de synchrone. Dans la logique asynchrone, le service, qui devrait être mis en latence, continue d’exécuter d’autres opérations en attendant la réponse du service appelé. Ce principe réduit ainsi considérablement le temps de latence dans l’exécution globale des applications. Facebook estime une réduction de plus de deux tiers du temps de latence.


Facebook est fier de l’expérience qui en résulte avec Instagram. La version actuelle d’Instagram, qui a été développée avec Folly Futures, traite des dizaines de milliers de requêtes par seconde et supporte des dizaines de millions de connexions par jour. L’équipe de développement dit avoir un code source plus lisible et plus efficient depuis le passage au Framework.

Folly Futures de Facebook s’est inspiré de Twitter Futures, qui lui repose sur le langage Scala. La firme de Mark Zuckerberg exprime sa gratitude à ses développeurs Hans Fugal, Dave Watson, James Sedgwick, Hannes Roth, et Blake Mathen.

Télécharger Futures sur GitHub

Source: Futures for C++ 11 at Facebook

Et vous ?

Que pensez-vous du Framework Folly Futures ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de defZero
Membre extrêmement actif https://www.developpez.com
Le 23/06/2015 à 23:55
Je ne suis pas développeur c++11 mais d’après les exemples, il est claire que c'est infiniment plus lisible que la solution, présenter comme standard, d’implémentation.
Bref sa me donne presque envie de m'y mettre (au c++11 s’entend).
0  0