Aller au contenu principal

27 articles tagués avec « internals »

Voir tous les tags

Classer les choses dans V8

· 20 minutes de lecture
Simon Zünd ([@nimODota](https://twitter.com/nimODota)), comparateur cohérent

Array.prototype.sort était parmi les derniers modules intégrés mis en œuvre en JavaScript auto-hébergé dans V8. Le porter nous a offert l'opportunité d'expérimenter avec différents algorithmes et stratégies d'implémentation et finalement le rendre stable dans V8 v7.0 / Chrome 70.

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.

Optimisation des proxies ES2015 dans V8

· 8 minutes de lecture
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), Optimisatrice de proxies

Les proxies sont une partie intégrante de JavaScript depuis ES2015. Ils permettent d'intercepter les opérations fondamentales sur les objets et de personnaliser leur comportement. Les proxies constituent une partie centrale de projets comme jsdom et la bibliothèque RPC Comlink. Récemment, nous avons investi beaucoup d'efforts pour améliorer les performances des proxies dans V8. Cet article met en lumière les modèles généraux d'amélioration des performances dans V8 et pour les proxies en particulier.

Types d'éléments dans V8

· 16 minutes de lecture
Mathias Bynens ([@mathias](https://twitter.com/mathias))
remarque

Note : Si vous préférez regarder une présentation plutôt que lire des articles, profitez de la vidéo ci-dessous !

Les objets JavaScript peuvent avoir des propriétés arbitraires associées à eux. Les noms des propriétés d'objet peuvent contenir n'importe quel caractère. L'un des cas intéressants que le moteur JavaScript peut choisir d'optimiser concerne les propriétés dont les noms sont purement numériques, plus précisément les indices de tableau.

Propriétés rapides dans V8

· 14 minutes de lecture
Camillo Bruni ([@camillobruni](https://twitter.com/camillobruni)), également auteur de [“Fast `for`-`in”](/blog/fast-for-in)

Dans cet article, nous souhaitons expliquer comment V8 gère les propriétés JavaScript en interne. Du point de vue de JavaScript, seules quelques distinctions sont nécessaires pour les propriétés. Les objets JavaScript se comportent principalement comme des dictionnaires, avec des clés de type chaîne de caractères et des objets arbitraires comme valeurs. Cependant, la spécification traite différemment les propriétés indexées par des entiers et les autres propriétés durant l'itération. En dehors de cela, les différentes propriétés se comportent principalement de la même manière, indépendamment du fait qu'elles soient indexées par des entiers ou non.

Lancement d'Ignition et TurboFan

· 7 minutes de lecture
l'équipe V8

Aujourd'hui, nous sommes ravis d'annoncer le lancement d'une nouvelle chaîne d'exécution JavaScript pour V8 v5.9, qui sera disponible sur la version stable de Chrome v59. Avec cette nouvelle chaîne, nous réalisons d'importantes améliorations en termes de performances et des économies significatives de mémoire sur des applications JavaScript réelles. Nous discuterons des chiffres en détail à la fin de cet article, mais d'abord, examinons cette chaîne d'exécution.

Boucle `for`-`in` rapide dans V8

· 15 minutes de lecture
Camillo Bruni ([@camillobruni](http://twitter.com/camillobruni))

for-in est une fonctionnalité de langage largement utilisée présente dans de nombreux frameworks. Malgré son omniprésence, elle est l'une des constructions de langage les plus obscures du point de vue de l'implémentation. V8 a déployé de grands efforts pour rendre cette fonction aussi rapide que possible. Au cours de l'année passée, for-in est devenu entièrement conforme à la spécification et jusqu'à 3 fois plus rapide, selon le contexte.

Aidez-nous à tester l'avenir de V8 !

· 3 minutes de lecture
Daniel Clifford ([@expatdanno](https://twitter.com/expatdanno)), Original Munich V8 Brewer

L'équipe V8 travaille actuellement sur une nouvelle pipeline de compilateur par défaut qui nous aidera à améliorer la vitesse de JavaScript en conditions réelles. Vous pouvez découvrir cette nouvelle pipeline dès aujourd'hui dans Chrome Canary, afin de nous aider à vérifier qu'il n'y a pas de surprises lorsque nous déploierons cette nouvelle configuration sur tous les canaux Chrome.