Aller au contenu principal

Extras V8

· 7 minutes de lecture
Domenic Denicola ([@domenic](https://twitter.com/domenic)), Sorcier des flux

V8 implémente une grande partie des objets et fonctions intégrés du langage JavaScript directement en JavaScript. Par exemple, vous pouvez voir notre implémentation des promesses qui est écrite en JavaScript. Ces objets intégrés sont appelés auto hébergés. Ces implémentations sont incluses dans notre instantané de démarrage afin que de nouveaux contextes puissent être rapidement créés sans avoir besoin de configurer et d'initialiser les objets auto hébergés durant l'exécution.

Publication de V8 v4.9

· 6 minutes de lecture
l'équipe V8

Environ 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 du master Git de V8 juste avant que Chrome ne branche pour une étape de la version Beta de Chrome. Aujourd'hui, nous sommes ravis d'annoncer notre dernière branche, V8 version 4.9, qui sera en version beta jusqu'à sa publication en tandem avec la version Stable de Chrome 49. V8 4.9 est rempli de nombreuses nouveautés pour les développeurs, alors nous souhaitons vous présenter un aperçu des points forts en vue de la sortie dans quelques semaines.

Il y a `Math.random()`, et puis il y a `Math.random()`

· 5 minutes de lecture
Yang Guo ([@hashseed](https://twitter.com/hashseed)), ingénieur logiciel et concepteur de dés

Math.random() retourne une valeur Number avec un signe positif, supérieure ou égale à 0 mais inférieure à 1, choisie de manière aléatoire ou pseudo-aléatoire avec une distribution approximativement uniforme sur cette plage, en utilisant un algorithme ou une stratégie dépendant de l’implémentation. Cette fonction ne prend aucun argument.

Version V8 v4.8

· 3 minutes de lecture
l'équipe V8

Environ toutes les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de publication. Chaque version est issue de la branche principale Git de V8 juste avant que Chrome ne crée une branche pour une étape Beta de Chrome. Aujourd'hui, nous sommes ravis d'annoncer notre nouvelle branche, V8 version 4.8, qui sera en beta jusqu'à sa publication en coordination avec Chrome 48 Stable. V8 4.8 contient un petit ensemble de fonctionnalités destinées aux développeurs, et nous aimerions vous donner un aperçu de certains points forts en prévision de la publication dans plusieurs semaines.

Jank Busters Partie Un

· 5 minutes de lecture
les jank busters : Jochen Eisinger, Michael Lippautz et Hannes Payer

Le jank, ou en d'autres termes les saccades visibles, peut être remarqué lorsque Chrome n'arrive pas à rendre une image dans les 16,66 ms (perturbant le mouvement à 60 images par seconde). À ce jour, la plupart des travaux de collecte des ordures de V8 sont effectués sur le thread principal de rendu, cf. Figure 1, entraînant souvent du jank lorsque trop d'objets doivent être maintenus. Éliminer le jank a toujours été une priorité élevée pour l'équipe V8 (1, 2, 3). Cet article discute de quelques optimisations mises en œuvre entre Chrome 41 et Chrome 46 qui réduisent significativement les pauses de la collecte des ordures, offrant une meilleure expérience utilisateur.

Version V8 v4.7

· 3 minutes de lecture
l'équipe V8

Environ toutes les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de sortie. Chaque version est issue du master Git de V8 juste avant que Chrome ne branche pour une étape bêta de Chrome. Aujourd'hui, nous sommes heureux d'annoncer notre toute nouvelle branche, Version V8 4.7, qui sera en bêta jusqu'à sa libération en coordination avec Chrome 47 Stable. La version V8 v4.7 est remplie de toutes sortes de nouveautés destinées aux développeurs, alors nous aimerions vous donner un aperçu de certains des points forts en prévision de la sortie dans quelques semaines.

Snapshots personnalisés au démarrage

· 3 minutes de lecture
Yang Guo ([@hashseed](https://twitter.com/hashseed)), ingénieur logiciel et fournisseur de préchauffeurs pour moteurs

La spécification JavaScript inclut de nombreuses fonctionnalités intégrées, allant des fonctions mathématiques à un moteur d'expressions régulières complet. Chaque contexte V8 nouvellement créé dispose de ces fonctions disponibles dès le départ. Pour que cela fonctionne, l'objet global (par exemple, l'objet window dans un navigateur) et toutes les fonctionnalités intégrées doivent être configurés et initialisés dans le tas de V8 au moment où le contexte est créé. Cela prend un certain temps si l'on part de zéro.

Version V8 v4.6

· 5 minutes de lecture
l’équipe V8

Environ toutes les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de version. Chaque version est dérivée de la branche master de Git V8 immédiatement avant que Chrome ne crée une branche pour une étape bêta de Chrome. Aujourd'hui, nous sommes heureux d’annoncer notre toute nouvelle branche, V8 version 4.6, qui sera en bêta jusqu’à sa sortie coordonnée avec Chrome 46 Stable. V8 4.6 est rempli de nombreuses fonctionnalités utiles aux développeurs, nous aimerions donc vous donner un aperçu de certains points forts en prévision de la sortie dans quelques semaines.

Obtenir la collecte des déchets gratuitement

· 10 minutes de lecture
Hannes Payer et Ross McIlroy, Collecteurs de déchets en idle

Les performances de JavaScript continuent d'être l'un des aspects clés des valeurs de Chrome, notamment lorsqu'il s'agit d'offrir une expérience fluide. À partir de Chrome 41, V8 utilise une nouvelle technique pour augmenter la réactivité des applications web en cachant les opérations coûteuses de gestion de la mémoire dans de petits morceaux de temps inactif autrement inutilisés. En conséquence, les développeurs web devraient s'attendre à un défilement plus fluide et à des animations légères avec des saccades considérablement réduites dues à la collecte des déchets.

Mise en cache de code

· 2 minutes de lecture
Yang Guo ([@hashseed](https://twitter.com/hashseed)), Ingénieur logiciel

V8 utilise la compilation juste-à-temps (JIT) pour exécuter le code JavaScript. Cela signifie que, juste avant d'exécuter un script, celui-ci doit être analysé et compilé — ce qui peut engendrer une surcharge considérable. Comme nous l'avons annoncé récemment, la mise en cache de code est une technique qui réduit cette surcharge. Lorsqu'un script est compilé pour la première fois, des données de cache sont produites et stockées. La prochaine fois que V8 doit compiler le même script, même dans une instance différente de V8, il peut utiliser les données de cache pour recréer le résultat de compilation au lieu de compiler depuis le début. En conséquence, le script est exécuté beaucoup plus rapidement.