le 9.0 Sortie du moteur JavaScript V8La mise sous tension des navigateurs basés sur Chrome et Chromium améliore les performances lors des appels WebAssembly à partir de JavaScript, ajoute des index de correspondance d’expressions régulières et augmente la vitesse super Accès à la propriété.

L’appel de WebAssembly via JavaScript est pénalisé par rapport à l’appel de code JavaScript via JavaScript. Comme expliqué dans l’annonce de sortie du V8:

La V8 utilise différentes représentations pour les paramètres des fonctions WebAssembly et JavaScript. Pour cette raison, lorsque JavaScript appelle une fonction WebAssembly exportée, l’appel passe par ce que l’on appelle un wrapper JS-to-Wasm, qui est chargé d’ajuster les paramètres de JavaScript-Land à WebAssembly-Land et d’ajuster les résultats dans le la direction opposée est.

L’appel de l’encapsuleur peut désormais être encapsulé sur le site d’appel pour minimiser la surcharge des performances de l’encapsuleur JavaScript vers WebAssembly. Avec cette expérience --turbo-inline-js-wasm-calls Flag, les benchmarks de performances montrent des appels typiques qui se terminent environ un tiers du temps sans wrapper en ligne. Plus de détails peuvent être trouvés dans le Faster js-to-wasm appelle le document de conception.

le Index de correspondance TC39 RegExp de niveau 3 La suggestion fournit plus d’informations sur les objets de correspondance d’expression régulière et les enregistrements où chaque groupe détecté commence et se termine. Par example,


const matchObject = /(i+)(q+)/.exec('iiinfoqqqq');
assert.equal(
  matchObject[1], 'iii');
assert.equal(
  matchObject[2], 'qqqq');

Index de cohérence fournit les indices de début et de fin du jeu via matchObject.indices:


assert.deepEqual(
  matchObject.indices[1], [0, 3]);
assert.deepEqual(
  matchObject.indices[2], [6, 10]);

Avec la prise en charge de V8 pour les index de correspondance, cette fonctionnalité sera disponible à partir de Chrome 90. La fonctionnalité est également attendue sous peu Renard de feu et safari, actuellement pris en charge dans les versions nocturnes.

L’accès aux super propriétés est désormais optimisé par le système de cache en ligne V8 et la génération de code est également optimisée TurboFan. L’accès à l’immobilier super était auparavant environ 20 fois plus lent que l’accès régulier à l’immobilier et ses performances sont désormais comparables. Accès ultra rapide à l’immobilier super fournit plus d’informations sur la façon dont cet avantage de performance a été obtenu dans le V8.

La V8 est mise à jour toutes les six semaines et prend en charge JavaScript pour les navigateurs Chrome, Node.js, Electron, Deno et plus encore. V8 est un logiciel open source avec plusieurs licences applicables aux sous-ensembles de la base de code en raison de dépendances externes. Les contributions sont les bienvenues dans tous les domaines Projet V8 Git et devrait suivre Directives de contribution de V8 et Code de conduite Open Source de Google.





Source link

Recent Posts