Aller au contenu principal

Amélioration de la mise en cache du code

· 6 minutes de lecture
Mythri Alle, Responsable en chef de la mise en cache du code

V8 utilise la mise en cache du code pour mettre en cache le code généré pour les scripts fréquemment utilisés. À partir de Chrome 66, nous mettons en cache plus de code en générant le cache après l'exécution au niveau supérieur. Cela conduit à une réduction de 20 à 40 % du temps d'analyse et de compilation lors du premier chargement.

Publication de V8 v6.6

· 8 minutes de lecture
l'équipe V8

Toutes les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de publication. Chaque version est dérivée de la branche master de V8 juste avant une étape de bêta de Chrome. Aujourd'hui, nous sommes ravis d'annoncer notre nouvelle branche, V8 version 6.6, qui est en bêta jusqu'à sa publication en coordination avec Chrome 66 Stable dans quelques semaines. V8 v6.6 est remplie de nouvelles fonctionnalités destinées aux développeurs. Ce post offre un aperçu des points forts en préparation au lancement.

Compilation en arrière-plan

· 6 minutes de lecture
[Ross McIlroy](https://twitter.com/rossmcilroy), défenseur du thread principal

TL;DR: À partir de Chrome 66, V8 compile le code source JavaScript sur un thread en arrière-plan, réduisant de 5% à 20% le temps passé à compiler sur le thread principal sur les sites web typiques.

Contexte

Depuis la version 41, Chrome prend en charge l'analyse des fichiers source JavaScript sur un thread en arrière-plan via l'API StreamedSource de V8. Cela permet à V8 de commencer à analyser le code source JavaScript dès que Chrome a téléchargé le premier fragment du fichier depuis le réseau, et de continuer l'analyse en parallèle pendant que Chrome diffuse le fichier sur le réseau. Cela peut apporter des améliorations considérables au temps de chargement, car V8 peut presque avoir terminé l'analyse du JavaScript au moment où le fichier est complètement téléchargé.

Tracer de JS au DOM et revenir

· 6 minutes de lecture
Ulan Degenbaev, Alexei Filippov, Michael Lippautz et Hannes Payer — la communauté du DOM

Déboguer les fuites de mémoire dans Chrome 66 est devenu beaucoup plus facile. Les DevTools de Chrome peuvent désormais tracer et prendre un instantané des objets DOM C++ et afficher tous les objets DOM accessibles depuis JavaScript avec leurs références. Cette fonctionnalité est l'un des avantages du nouveau mécanisme de traçage C++ du ramasse-miettes V8.

Désérialisation paresseuse

· 7 minutes de lecture
Jakob Gruber ([@schuay](https://twitter.com/schuay))

TL;DR : La désérialisation paresseuse a récemment été activée par défaut dans V8 v6.4, réduisant en moyenne la consommation de mémoire de V8 de plus de 500 KB par onglet de navigateur. Lisez la suite pour en savoir plus !

Introduction aux instantanés V8

Mais d'abord, revenons un peu en arrière et voyons comment V8 utilise les instantanés de tas pour accélérer la création de nouveaux isolats (qui correspondent approximativement à un onglet de navigateur dans Chrome). Mon collègue Yang Guo a donné une bonne introduction à ce sujet dans son article sur les instantanés de démarrage personnalisés :

Publication de V8 version v6.5

· 5 minutes de lecture
l'équipe V8

Tous les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de publication. Chaque version est créée depuis le dépôt Git principal de V8 juste avant un jalon de Chrome Beta. Aujourd’hui, nous sommes ravis d’annoncer notre plus récente branche, V8 version 6.5, qui est en phase bêta jusqu’à sa publication en coordination avec Chrome 65 Stable dans quelques semaines. V8 v6.5 est rempli de toutes sortes de nouveautés dédiées aux développeurs. Ce post donne un aperçu de certains des points forts en prévision de la publication.

Chrome accueille Speedometer 2.0 !

· 4 minutes de lecture
les équipes Blink et V8

Depuis la sortie initiale de Speedometer 1.0 en 2014, les équipes Blink et V8 utilisent ce benchmark comme proxy pour l'utilisation réelle des frameworks JavaScript populaires et ont réalisé des gains de vitesse considérables sur ce benchmark. Nous avons vérifié indépendamment que ces améliorations se traduisent par des bénéfices réels pour les utilisateurs en mesurant sur des sites Web réels et avons observé que les améliorations des temps de chargement des pages des sites populaires ont également amélioré le score de Speedometer.

Version V8 v6.4

· 4 minutes de lecture
l'équipe V8

Toutes les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de version. Chaque version est créée à partir de la branche principale de V8 juste avant une étape de Chrome Beta. Aujourd'hui, nous sommes heureux d'annoncer notre nouvelle branche, V8 version 6.4, qui est en version bêta jusqu'à son lancement en coordination avec Chrome 64 Stable dans plusieurs semaines. V8 v6.4 est rempli de toutes sortes d'améliorations pour les développeurs. Ce post présente certains des points forts en attendant la sortie.

Couverture de code JavaScript

· 11 minutes de lecture
Jakob Gruber ([@schuay](https://twitter.com/schuay))

La couverture de code fournit des informations sur si, et éventuellement à quelle fréquence, certaines parties d'une application ont été exécutées. Elle est couramment utilisée pour déterminer dans quelle mesure une suite de tests examine une base de code particulière.

Pourquoi est-ce utile ?

En tant que développeur JavaScript, vous pouvez souvent vous retrouver dans une situation où la couverture de code pourrait être utile. Par exemple :

  • Intéressé par la qualité de votre suite de tests ? Refactoriser un grand projet hérité ? La couverture de code peut vous montrer exactement quelles parties de votre base de code sont couvertes.
  • Vous voulez savoir rapidement si une partie particulière de la base de code est atteinte ? Au lieu d'instrumenter avec console.log pour un debugging de style printf ou de passer manuellement à travers le code, la couverture de code peut afficher des informations en direct sur quelles parties de vos applications ont été exécutées.
  • Ou peut-être optimisez-vous pour la vitesse et aimeriez savoir sur quels endroits focaliser ? Les comptes d'exécution peuvent pointer les fonctions et boucles importantes.