Aller au contenu principal

16 articles tagués avec « mémoire »

Voir tous les tags

Un stage sur la paresse : délier paresseusement les fonctions désoptimisées

· 12 minutes de lecture
Juliana Franco ([@jupvfranco](https://twitter.com/jupvfranco)), Experte en Paresse

Il y a environ trois mois, j’ai rejoint l’équipe V8 (Google Munich) en tant que stagiaire et depuis, j’ai travaillé sur le Deoptimizer de la VM — quelque chose de totalement nouveau pour moi qui s’est avéré être un projet intéressant et stimulant. La première partie de mon stage s’est concentrée sur l’amélioration de la sécurité de la VM. La deuxième partie portait sur les améliorations des performances. Notamment, sur la suppression d’une structure de données utilisée pour délier les fonctions précédemment désoptimisées, ce qui était un goulot d’étranglement de performance durant la collecte des ordures. Cet article de blog décrit cette deuxième partie de mon stage. J’expliquerai comment V8 délait les fonctions désoptimisées auparavant, comment nous avons changé cela et quelles améliorations de performance ont été obtenues.

Un petit pas pour Chrome, un grand bond pour V8

· 3 minutes de lecture
les gardiens du tas Ulan Degenbaev, Hannes Payer, Michael Lippautz, et le guerrier DevTools Alexey Kozyatinskiy

V8 a une limite stricte sur la taille de son tas. Cela sert de protection contre les applications qui présentent des fuites de mémoire. Lorsqu'une application atteint cette limite stricte, V8 effectue une série de collectes de déchets en dernier recours. Si ces collectes de déchets ne permettent pas de libérer de la mémoire, V8 arrête l'exécution et signale une panne due à un manque de mémoire. Sans cette limite stricte, une application présentant une fuite de mémoire pourrait utiliser toute la mémoire du système, nuisant aux performances des autres applications.

Optimisation de la consommation de mémoire de V8

· 10 minutes de lecture
Les Ingénieurs Sanitation de Mémoire de V8 Ulan Degenbaev, Michael Lippautz, Hannes Payer, et Toon Verwaest

La consommation de mémoire est une dimension importante dans l'espace d'arbitrage de performance des machines virtuelles JavaScript. Au cours des derniers mois, l'équipe V8 a analysé et réduit significativement l'empreinte mémoire de plusieurs sites web identifiés comme représentatifs des modèles de développement web modernes. Dans ce billet de blog, nous présentons les charges de travail et les outils que nous avons utilisés dans notre analyse, décrivons les optimisations de mémoire dans le collecteur de déchets, et montrons comment nous avons réduit la mémoire consommée par le parseur et les compilateurs de V8.

Jank Busters Partie Deux : Orinoco

· 7 minutes de lecture
les chasseurs de jank : Ulan Degenbaev, Michael Lippautz, et Hannes Payer

Dans un article de blog précédent, nous avons introduit le problème du jank causé par la collecte des déchets interrompant une expérience de navigation fluide. Dans cet article, nous présentons trois optimisations qui posent les bases d'un nouveau ramasse-miettes dans V8, nommé Orinoco. Orinoco repose sur l'idée qu'implémenter un ramasse-miettes majoritairement parallèle et concurrent sans frontières générationnelles strictes réduira le jank causé par la collecte des déchets et la consommation mémoire tout en fournissant un haut débit. Au lieu d'implémenter Orinoco derrière un drapeau comme un ramasse-miettes distinct, nous avons décidé de déployer les fonctionnalités d'Orinoco de manière incrémentale dans la version principale de V8 pour en faire bénéficier immédiatement les utilisateurs. Les trois fonctionnalités discutées dans cet article sont le compactage parallèle, le traitement parallèle de l'ensemble mémorisé, et l'allocation en noir.

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.

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.