SlideShare une entreprise Scribd logo
1  sur  3
Patience surInternetest-elle morte ?!L’Internetvavite…le navigateurdoitsuivreaujourd’hui !
Parallèle Parallaxe
• Par exemple,récemmentessayé àuneffetparallaxesurmonsite avecl’idée d’un
scroll rapide etlisse…cependant
• Différentes approchesqui obligentle devàpenserlessoucisde performancesetles
soucisde compatibilitéentre nav
• Servovientrépondre àcette problématiqueenapportantplusde vitesseaux
chargementde vospageset une fluidité sansprécédent…
Nom de code Quantum
• Firefox utilise moteurde renduGeckoenC++ -> effetquantum=créer une nouvelle
expérience pourl’utilisateur
• Chargementde page plusrapide et fluidité
• Servo= une initiative de MozillaResearch2012 desirde :
• Autantde performance etde puissance que le C++
• Mais sans risque de bugetde faillesde sécurité
• Basé sur un mécanisme d’exécution multi-process=HTML et CSS
• Programmation parallèle autoriséemaisseulementsouscertainscas ->WebGL
shaderGPU and Web WorkersinJS
• Samsumgrejoint2015
• ARMsupportet Android
 Démo ServoExperiments.com
Avantage de Rust
• Contre la corruptionde mémoire
• C++ -> écriture de plusde donnée que dansle buffer
• Accéderà desblocsde mémoire déjàfreed
• Parallélisation etthreadsafety
• Une approche pluscontrôlée de laparallélisation =built-inconcurencypourdes
tachesparalléliséesetdesprogrammesexécutés enparallèle.Le partage des
donnéesalorsplusexplicite ->système d’erreuralacompi
• Bas niveau
• Rust compile versducode machine natif =autant de perf que le c++ en 2015 et
aujourd’hui +de perf
……
• Enjeusur lesperf etlaminimisationde laconsoénergétique.HeartbeatsAPIcapable
d’enregistrerdesdonnéesd’utilénergie de taches parallèle etcrossplatform
 Démo servoexperiments.com
[PAUSE]
Rust en production avec Servo
1. Rust rapidité ??
~150k line de code (2016) VS Blink (chromium) had700k linesof C++ code and WebKit1.3Mlines
• Servo-Shell =WebBrowserutilisantseulementJSetCSS
• BrowserChrome utilisantdesAPISqui s’exécute surServo etpermettentde se
différencierducontenude lapage chargé = superperf
• CSS ~120 propriétéssupportésenMai 2015
2. Plusieurs Crates
• Stylo
Liste despropriété CSS,unparseurde CSS en multithread :
https://docs.google.com/spreadsheets/d/1CxLS8w8GwK-
2euVErrqpUUb76PiZa6w5h5EnGsL9KFs/edit#gid=555855884
• WebRender
Utilise le GPUau lieuduCPU, le renduestalorsfait de deux manières:
1. Servo analyse le layout de la page et renvois celle-ci sous forme de Display
élément
2. Le GPU reçoit les données et les initialise les fonctions de rendu
3. Puis il rend « instantanément » tout ce qu’on lui a donné
C’estenréalité une descriptiondufrontanalysé poursavoircommentoptimiserlescmdGPU.
WebRenderutilise OpenGLet destechniquesde Shader.
Quantum Compositor
The Quantum Compositor moves Gecko’s compositor into its own process. Since graphics driver instability is a
major source of Firefox crashes, we expect that moving code that interacts with the GPU into its own process
will make Firefox more stable. This work is tracked in bug 1264543.
Quantum DOM
The Quantum DOM project will make Gecko more responsive, especially when there are a lot of background
tabs open. When Quantum DOM is finished, JS code for different tabs (and possibly different iframes) will run in
separate cooperatively scheduled threads; the code for some background tabs will never run at all.
Bill McCloskey wrote more about Quantum DOM on his blog.
Quantum Flow
The Quantum Flow project is part of a bigger Quantum Initiative. It explore performance improvements not
covered by the other Quantum components, such as UI optimizations.
3. Contribution facile
• Git-Hubavecune communauté trèsouverte etavenante pourlesnouveauxvenus
• Stackoverflow surRustc’est4,6k de questionset 5,9k de réponsespour2,6k de
personnes
• IRC,mailinglist,Reddit…
• Utilisationd’ungestionnaire Machqui réduitle nombre de commande pourcompileretdev
Servo
• Servoestprincipalementcodé enRust,maisil reste 2/3 enC/C++ = SpiderMonky,JS
Engine..Cargoavecsa configurationen.toml permetde gérertoutesses
dépendance etde vérifierdesmisesàjourdansun système de compatibilité
• Système de testunitaire spécialementdestestsde compentre Cratessinontest
cross-plateformpourle WPTetle CSS
• Servocapable d’exécuter
• GithubDuckDuck Go WikipediaReddit…
 Démo Servo Nigthly avec GitHub, Reddit et Wikipedia
Conclusion
Et surtout unprojetde recherche qui vise àapporterplusde rapidité etde fluidité aux
navigateursactuelle.Ce n’estpasunnouveaunavigateurmaisune nouvelletechnologie qui se
doitd’être intégrable(testsunitairescross-plateforme)
-> IntégrationpetitàpetitdansFirefox (dernière miseàjourmars 2017)

Contenu connexe

Tendances

Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB13p
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node jsHoracio Gonzalez
 
03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA 03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA Cellenza
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Cédric Leblond
 
Node.js et MongoDB: Mongoose
Node.js et MongoDB: MongooseNode.js et MongoDB: Mongoose
Node.js et MongoDB: Mongoosejeromegn
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?ALTER WAY
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Angular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUGAngular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUGWilliam Marques
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...ALTER WAY
 
Techdays azure pour les développeurs
Techdays azure pour les développeursTechdays azure pour les développeurs
Techdays azure pour les développeursAymeric Weinbach
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Silicon Comté
 
WebHookIt @parisjs #4
WebHookIt @parisjs #4WebHookIt @parisjs #4
WebHookIt @parisjs #4Eric Abouaf
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, LinuxYasmine Amrani
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière Cellenza
 
Le Bulletin Azure épisode 1
Le Bulletin Azure épisode 1Le Bulletin Azure épisode 1
Le Bulletin Azure épisode 1benjguin
 
02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC 02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC Cellenza
 

Tendances (20)

Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
 
NodeJs in real life
NodeJs in real lifeNodeJs in real life
NodeJs in real life
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA 03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
Node.js et MongoDB: Mongoose
Node.js et MongoDB: MongooseNode.js et MongoDB: Mongoose
Node.js et MongoDB: Mongoose
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Angular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUGAngular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUG
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
 
Techdays azure pour les développeurs
Techdays azure pour les développeursTechdays azure pour les développeurs
Techdays azure pour les développeurs
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
WebHookIt @parisjs #4
WebHookIt @parisjs #4WebHookIt @parisjs #4
WebHookIt @parisjs #4
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière
 
Intro docker
Intro dockerIntro docker
Intro docker
 
Le Bulletin Azure épisode 1
Le Bulletin Azure épisode 1Le Bulletin Azure épisode 1
Le Bulletin Azure épisode 1
 
02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC 02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC
 

Similaire à Introduction to Rust in Production - Servo Mozilla project (Talk)

Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Cellenza
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Microsoft
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assemblyJérémy Buget
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ? haricot
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontZenika
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Softshake 2013 - Du JavaScript propre ? Challenge accepted!
Softshake 2013 - Du JavaScript propre ? Challenge accepted!Softshake 2013 - Du JavaScript propre ? Challenge accepted!
Softshake 2013 - Du JavaScript propre ? Challenge accepted!OCTO Technology
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebFrédéric Harper
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?Frédéric Harper
 
Les Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernesLes Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernesTristan Nitot
 
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureTechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureThomas Conté
 
Softshake 2013 - Du JavaScript propre ? Challenge Accepted!
Softshake 2013 - Du JavaScript propre ? Challenge Accepted!Softshake 2013 - Du JavaScript propre ? Challenge Accepted!
Softshake 2013 - Du JavaScript propre ? Challenge Accepted!Romain Linsolas
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lroxmed
 
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi..."J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...Microsoft
 
GWT Approfondissement - GTI780 & MTI780 - ETS - A09
GWT Approfondissement  - GTI780 & MTI780 - ETS - A09GWT Approfondissement  - GTI780 & MTI780 - ETS - A09
GWT Approfondissement - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
LoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé AlbertonLoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé AlbertonWeLoveSEO
 
We❤️SEO 2019 : WebPerf et SEO
We❤️SEO 2019 : WebPerf et SEOWe❤️SEO 2019 : WebPerf et SEO
We❤️SEO 2019 : WebPerf et SEOErlé Alberton
 

Similaire à Introduction to Rust in Production - Servo Mozilla project (Talk) (20)

Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ?
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. Darmont
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Gdd07 Gwt Dig
Gdd07 Gwt DigGdd07 Gwt Dig
Gdd07 Gwt Dig
 
Softshake 2013 - Du JavaScript propre ? Challenge accepted!
Softshake 2013 - Du JavaScript propre ? Challenge accepted!Softshake 2013 - Du JavaScript propre ? Challenge accepted!
Softshake 2013 - Du JavaScript propre ? Challenge accepted!
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 
Les Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernesLes Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernes
 
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureTechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
 
Softshake 2013 - Du JavaScript propre ? Challenge Accepted!
Softshake 2013 - Du JavaScript propre ? Challenge Accepted!Softshake 2013 - Du JavaScript propre ? Challenge Accepted!
Softshake 2013 - Du JavaScript propre ? Challenge Accepted!
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lr
 
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi..."J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
 
GWT Approfondissement - GTI780 & MTI780 - ETS - A09
GWT Approfondissement  - GTI780 & MTI780 - ETS - A09GWT Approfondissement  - GTI780 & MTI780 - ETS - A09
GWT Approfondissement - GTI780 & MTI780 - ETS - A09
 
LoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé AlbertonLoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé Alberton
 
We❤️SEO 2019 : WebPerf et SEO
We❤️SEO 2019 : WebPerf et SEOWe❤️SEO 2019 : WebPerf et SEO
We❤️SEO 2019 : WebPerf et SEO
 

Introduction to Rust in Production - Servo Mozilla project (Talk)

  • 1. Patience surInternetest-elle morte ?!L’Internetvavite…le navigateurdoitsuivreaujourd’hui ! Parallèle Parallaxe • Par exemple,récemmentessayé àuneffetparallaxesurmonsite avecl’idée d’un scroll rapide etlisse…cependant • Différentes approchesqui obligentle devàpenserlessoucisde performancesetles soucisde compatibilitéentre nav • Servovientrépondre àcette problématiqueenapportantplusde vitesseaux chargementde vospageset une fluidité sansprécédent… Nom de code Quantum • Firefox utilise moteurde renduGeckoenC++ -> effetquantum=créer une nouvelle expérience pourl’utilisateur • Chargementde page plusrapide et fluidité • Servo= une initiative de MozillaResearch2012 desirde : • Autantde performance etde puissance que le C++ • Mais sans risque de bugetde faillesde sécurité • Basé sur un mécanisme d’exécution multi-process=HTML et CSS • Programmation parallèle autoriséemaisseulementsouscertainscas ->WebGL shaderGPU and Web WorkersinJS • Samsumgrejoint2015 • ARMsupportet Android  Démo ServoExperiments.com Avantage de Rust • Contre la corruptionde mémoire • C++ -> écriture de plusde donnée que dansle buffer • Accéderà desblocsde mémoire déjàfreed • Parallélisation etthreadsafety • Une approche pluscontrôlée de laparallélisation =built-inconcurencypourdes tachesparalléliséesetdesprogrammesexécutés enparallèle.Le partage des donnéesalorsplusexplicite ->système d’erreuralacompi
  • 2. • Bas niveau • Rust compile versducode machine natif =autant de perf que le c++ en 2015 et aujourd’hui +de perf …… • Enjeusur lesperf etlaminimisationde laconsoénergétique.HeartbeatsAPIcapable d’enregistrerdesdonnéesd’utilénergie de taches parallèle etcrossplatform  Démo servoexperiments.com [PAUSE] Rust en production avec Servo 1. Rust rapidité ?? ~150k line de code (2016) VS Blink (chromium) had700k linesof C++ code and WebKit1.3Mlines • Servo-Shell =WebBrowserutilisantseulementJSetCSS • BrowserChrome utilisantdesAPISqui s’exécute surServo etpermettentde se différencierducontenude lapage chargé = superperf • CSS ~120 propriétéssupportésenMai 2015 2. Plusieurs Crates • Stylo Liste despropriété CSS,unparseurde CSS en multithread : https://docs.google.com/spreadsheets/d/1CxLS8w8GwK- 2euVErrqpUUb76PiZa6w5h5EnGsL9KFs/edit#gid=555855884 • WebRender Utilise le GPUau lieuduCPU, le renduestalorsfait de deux manières: 1. Servo analyse le layout de la page et renvois celle-ci sous forme de Display élément 2. Le GPU reçoit les données et les initialise les fonctions de rendu 3. Puis il rend « instantanément » tout ce qu’on lui a donné C’estenréalité une descriptiondufrontanalysé poursavoircommentoptimiserlescmdGPU. WebRenderutilise OpenGLet destechniquesde Shader.
  • 3. Quantum Compositor The Quantum Compositor moves Gecko’s compositor into its own process. Since graphics driver instability is a major source of Firefox crashes, we expect that moving code that interacts with the GPU into its own process will make Firefox more stable. This work is tracked in bug 1264543. Quantum DOM The Quantum DOM project will make Gecko more responsive, especially when there are a lot of background tabs open. When Quantum DOM is finished, JS code for different tabs (and possibly different iframes) will run in separate cooperatively scheduled threads; the code for some background tabs will never run at all. Bill McCloskey wrote more about Quantum DOM on his blog. Quantum Flow The Quantum Flow project is part of a bigger Quantum Initiative. It explore performance improvements not covered by the other Quantum components, such as UI optimizations. 3. Contribution facile • Git-Hubavecune communauté trèsouverte etavenante pourlesnouveauxvenus • Stackoverflow surRustc’est4,6k de questionset 5,9k de réponsespour2,6k de personnes • IRC,mailinglist,Reddit… • Utilisationd’ungestionnaire Machqui réduitle nombre de commande pourcompileretdev Servo • Servoestprincipalementcodé enRust,maisil reste 2/3 enC/C++ = SpiderMonky,JS Engine..Cargoavecsa configurationen.toml permetde gérertoutesses dépendance etde vérifierdesmisesàjourdansun système de compatibilité • Système de testunitaire spécialementdestestsde compentre Cratessinontest cross-plateformpourle WPTetle CSS • Servocapable d’exécuter • GithubDuckDuck Go WikipediaReddit…  Démo Servo Nigthly avec GitHub, Reddit et Wikipedia Conclusion Et surtout unprojetde recherche qui vise àapporterplusde rapidité etde fluidité aux navigateursactuelle.Ce n’estpasunnouveaunavigateurmaisune nouvelletechnologie qui se doitd’être intégrable(testsunitairescross-plateforme) -> IntégrationpetitàpetitdansFirefox (dernière miseàjourmars 2017)