Maison interface Web js tutoriel Une brève analyse du mécanisme de récupération de place JS et de la gestion de la mémoire

Une brève analyse du mécanisme de récupération de place JS et de la gestion de la mémoire

Apr 04, 2018 pm 02:36 PM
javascript

Cet article présente principalement une brève analyse du mécanisme de récupération de place JS et de la gestion de la mémoire. L'éditeur pense qu'il est assez bon, je vais donc le partager avec vous maintenant et le donner comme référence. Venez jeter un œil avec l'éditeur

Garbage Collection

Le mécanisme de garbage collection en JavaScript est très simple : recherchez les variables qui ne sont plus utilisées, puis libérez-les.

Les variables locales n'existent que pendant l'exécution de la fonction, donc lorsque l'exécution de la fonction se termine, il n'est pas nécessaire que les variables locales existent. Mais toutes les variables ne sont pas si faciles à juger, donc certaines méthodes doivent être utilisées. pour les recycler Variable

1 Effacement de la marque :

La méthode de récupération de place la plus couramment utilisée en JavaScript consiste à effacer la marque Lorsqu'une variable entre dans l'environnement, marquez-la. variable comme "Entrer dans l'environnement", lorsque la variable quitte l'environnement, marquez la variable comme "quittant l'environnement". De manière générale, nous n'effacerons que les variables avec la marque d'environnement de sortie, car il n'y a aucun moyen d'y accéder. le garbage collector termine le travail d'effacement de la mémoire.

2 Comptage de références :

Cette méthode n'est pas si couramment utilisée. La signification du comptage de références est d'enregistrer le nombre de fois que chaque valeur. est référencé. Lorsque le nombre de références est réduit à 0, cela signifie qu'il n'y a plus aucun moyen d'accéder à cette valeur, donc la mémoire qu'elle occupe peut être libérée

Mais il y a un problème avec le comptage des références : référence circulaire. Par exemple :


function problem(){
var objectA = new Object();
var objectB = new Object();
objectA.someOtherObject = objectB;
objectB.anotherObject = objectA;
}
Copier après la connexion

Dans cet exemple, objectA et objectB se référencent mutuellement via leurs propriétés respectives ; fois

Les chiffres sont tous 2. Dans une implémentation qui utilise une stratégie de marquage et de balayage, cette référence mutuelle ne pose pas de problème car les deux objets sortent de la portée une fois la fonction exécutée. Mais dans une implémentation qui utilise une stratégie de comptage de références, objectA et objectB continueront d'exister après l'exécution de la fonction, car leur nombre de références ne sera jamais 0. Si cette fonction est appelée plusieurs fois, une grande quantité de mémoire ne sera pas recyclée

Afin d'éviter ce problème, nous devons les mettre à null lorsqu'elles ne sont pas utilisées pour éliminer les références circulaires

Gestion de la mémoire :

Nous savons tous que la quantité de mémoire disponible allouée aux navigateurs Web est généralement inférieure à celle allouée aux applications de bureau. Le but est principalement pour des raisons de sécurité, et le but est d'empêcher une page Web exécutant JavaScript d'utiliser toute la mémoire système et de provoquer un crash du système. Les problèmes de limite de mémoire affectent non seulement l'allocation de mémoire pour les variables, mais également la pile d'appels et le nombre d'instructions pouvant être exécutées simultanément dans un thread.

Par conséquent, s'assurer que la quantité minimale de mémoire est occupée permet à la page d'obtenir de meilleures performances. La meilleure façon d'optimiser l'utilisation de la mémoire est de sauvegarder uniquement les données nécessaires à l'exécution du code. Une fois que les données ne sont plus utiles, c'est une bonne idée de libérer leur référence en définissant leur valeur sur null, une pratique appelée déréférencement. Cette approche s'applique à la plupart des variables globales et des propriétés des objets globaux. Les variables locales sont automatiquement déréférencées lorsqu'elles quittent l'environnement d'exécution, comme le montre l'exemple suivant :

function createPerson(name){
var localPerson = new Object();
localPerson.name = name;
return localPerson;
}
var globalPerson = createPerson("Nicholas");
// 手工解除globalPerson 的引用
globalPerson = null;
Copier après la connexion

Déréférencer une valeur ne signifie pas recycler automatiquement la mémoire occupée par la valeur. En réalité, un déréférencement supprime la valeur de l'environnement d'exécution afin qu'elle puisse être récupérée lors de la prochaine exécution du garbage collector.

Recommandations associées :

mécanisme de récupération de place Java, gestion de la mémoire

Mécanisme de récupération de place JS et allocation de mémoire

Mécanisme de récupération de place JavaScript et problème de fuite de mémoire

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Optimisation importante de la mémoire, que dois-je faire si l'ordinateur passe à une vitesse de mémoire de 16 Go/32 Go et qu'il n'y a aucun changement ? Optimisation importante de la mémoire, que dois-je faire si l'ordinateur passe à une vitesse de mémoire de 16 Go/32 Go et qu'il n'y a aucun changement ? Jun 18, 2024 pm 06:51 PM

Pour les disques durs mécaniques ou les disques SSD SATA, vous ressentirez l'augmentation de la vitesse d'exécution du logiciel. S'il s'agit d'un disque dur NVME, vous ne la ressentirez peut-être pas. 1. Importez le registre sur le bureau et créez un nouveau document texte, copiez et collez le contenu suivant, enregistrez-le sous 1.reg, puis cliquez avec le bouton droit pour fusionner et redémarrer l'ordinateur. WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement]"DisablePagingExecutive"=d

Comment vérifier l'utilisation de la mémoire sur Xiaomi Mi 14Pro ? Comment vérifier l'utilisation de la mémoire sur Xiaomi Mi 14Pro ? Mar 18, 2024 pm 02:19 PM

Récemment, Xiaomi a lancé un puissant smartphone haut de gamme, le Xiaomi 14Pro, qui présente non seulement un design élégant, mais également une technologie noire interne et externe. Le téléphone offre des performances optimales et d'excellentes capacités multitâches, permettant aux utilisateurs de profiter d'une expérience de téléphonie mobile rapide et fluide. Cependant, les performances seront également affectées par la mémoire. De nombreux utilisateurs souhaitent savoir comment vérifier l’utilisation de la mémoire du Xiaomi 14Pro, alors jetons-y un coup d’œil. Comment vérifier l’utilisation de la mémoire sur Xiaomi Mi 14Pro ? Introduction à la façon de vérifier l'utilisation de la mémoire du Xiaomi 14Pro. Ouvrez le bouton [Gestion des applications] dans [Paramètres] du téléphone Xiaomi 14Pro. Pour afficher la liste de toutes les applications installées, parcourez la liste et recherchez l'application que vous souhaitez afficher, cliquez dessus pour accéder à la page de détails de l'application. Dans la page de détails de la candidature

Y a-t-il une grande différence entre 8 Go et 16 Go de mémoire dans les ordinateurs ? (Choisissez 8 Go ou 16 Go de mémoire informatique) Y a-t-il une grande différence entre 8 Go et 16 Go de mémoire dans les ordinateurs ? (Choisissez 8 Go ou 16 Go de mémoire informatique) Mar 13, 2024 pm 06:10 PM

Lorsque les utilisateurs novices achèteront un ordinateur, ils seront curieux de connaître la différence entre 8 Go et 16 Go de mémoire informatique ? Dois-je choisir 8g ou 16g ? En réponse à ce problème, l'éditeur va aujourd'hui vous l'expliquer en détail. Y a-t-il une grande différence entre 8 Go et 16 Go de mémoire informatique ? 1. Pour les familles ordinaires ou le travail ordinaire, la mémoire courante de 8 Go peut répondre aux exigences, il n'y a donc pas beaucoup de différence entre 8 g et 16 g pendant l'utilisation. 2. Lorsqu'ils sont utilisés par des passionnés de jeux, les jeux à grande échelle commencent actuellement à 6 Go, et 8 Go est la norme minimale. Actuellement, lorsque l'écran est en 2K, une résolution plus élevée n'apportera pas de performances de fréquence d'images plus élevées, il n'y a donc pas de grande différence entre 8g et 16g. 3. Pour les utilisateurs de montage audio et vidéo, il y aura des différences évidentes entre 8g et 16g.

Samsung a annoncé l'achèvement de la vérification de la technologie du processus d'empilement de liaisons hybrides à 16 couches, qui devrait être largement utilisée dans la mémoire HBM4. Samsung a annoncé l'achèvement de la vérification de la technologie du processus d'empilement de liaisons hybrides à 16 couches, qui devrait être largement utilisée dans la mémoire HBM4. Apr 07, 2024 pm 09:19 PM

Selon le rapport, Dae Woo Kim, directeur de Samsung Electronics, a déclaré que lors de la réunion annuelle 2024 de la Korean Microelectronics and Packaging Society, Samsung Electronics terminerait la vérification de la technologie de mémoire HBM à liaison hybride à 16 couches. Il est rapporté que cette technologie a passé avec succès la vérification technique. Le rapport indique également que cette vérification technique jettera les bases du développement du marché de la mémoire dans les prochaines années. DaeWooKim a déclaré que Samsung Electronics avait réussi à fabriquer une mémoire HBM3 empilée à 16 couches basée sur la technologie de liaison hybride. À l'avenir, la technologie de liaison hybride empilée à 16 couches sera utilisée pour la production en série de mémoire HBM4. ▲ Source de l'image TheElec, comme ci-dessous. Par rapport au processus de liaison existant, la liaison hybride n'a pas besoin d'ajouter de bosses entre les couches de mémoire DRAM, mais connecte directement les couches supérieure et inférieure de cuivre au cuivre.

Des sources affirment que Samsung Electronics et SK Hynix commercialiseront de la mémoire mobile empilée après 2026 Des sources affirment que Samsung Electronics et SK Hynix commercialiseront de la mémoire mobile empilée après 2026 Sep 03, 2024 pm 02:15 PM

Selon des informations publiées sur ce site Web le 3 septembre, le média coréen etnews a rapporté hier (heure locale) que les produits de mémoire mobile à structure empilée « de type HBM » de Samsung Electronics et SK Hynix seraient commercialisés après 2026. Des sources ont indiqué que les deux géants coréens de la mémoire considèrent la mémoire mobile empilée comme une source importante de revenus futurs et prévoient d'étendre la « mémoire de type HBM » aux smartphones, tablettes et ordinateurs portables afin de fournir de la puissance à l'IA finale. Selon des rapports précédents sur ce site, le produit de Samsung Electronics s'appelle LPWide I/O memory, et SK Hynix appelle cette technologie VFO. Les deux sociétés ont utilisé à peu près la même voie technique, à savoir combiner emballage en sortance et canaux verticaux. La mémoire LPWide I/O de Samsung Electronics a une largeur de 512 bits.

Mar 22, 2024 pm 08:16 PM

Ce site rapportait le 21 mars que Micron avait tenu une conférence téléphonique après la publication de son rapport financier trimestriel. Lors de la conférence, le PDG de Micron, Sanjay Mehrotra, a déclaré que par rapport à la mémoire traditionnelle, la HBM consomme beaucoup plus de plaquettes. Micron a déclaré qu'en produisant la même capacité sur le même nœud, la mémoire HBM3E la plus avancée actuelle consomme trois fois plus de tranches que la DDR5 standard, et on s'attend à ce qu'à mesure que les performances s'améliorent et que la complexité de l'emballage s'intensifie, à l'avenir HBM4, ce ratio augmentera encore. . Si l’on se réfère aux rapports précédents sur ce site, ce ratio élevé est en partie dû au faible taux de rendement de HBM. La mémoire HBM est empilée avec des connexions TSV de mémoire DRAM multicouche. Un problème avec une couche signifie que l'ensemble.

Lexar lance le kit de mémoire Ares Wings of War DDR5 7600 16 Go x2 : particules Hynix A-die, 1 299 yuans Lexar lance le kit de mémoire Ares Wings of War DDR5 7600 16 Go x2 : particules Hynix A-die, 1 299 yuans May 07, 2024 am 08:13 AM

Selon les informations de ce site Web le 6 mai, Lexar a lancé la mémoire d'overclocking DDR57600CL36 de la série Ares Wings of War. L'ensemble de 16 Go x 2 sera disponible en prévente à 00h00 le 7 mai avec un dépôt de 50 yuans, et le prix est de 50 yuans. 1 299 yuans. La mémoire Lexar Wings of War utilise des puces mémoire Hynix A-die, prend en charge Intel XMP3.0 et fournit les deux préréglages d'overclocking suivants : 7600MT/s : CL36-46-46-961.4V8000MT/s : CL38-48-49 -1001.45V En termes de dissipation thermique, cet ensemble de mémoire est équipé d'un gilet de dissipation thermique tout en aluminium de 1,8 mm d'épaisseur et est équipé du tampon de graisse en silicone thermoconducteur exclusif de PMIC. La mémoire utilise 8 perles LED haute luminosité et prend en charge 13 modes d'éclairage RVB.

Kingbang lance une nouvelle mémoire DDR5 8600, disponible en CAMM2, LPCAMM2 et modèles standards Kingbang lance une nouvelle mémoire DDR5 8600, disponible en CAMM2, LPCAMM2 et modèles standards Jun 08, 2024 pm 01:35 PM

Selon les informations de ce site le 7 juin, GEIL a lancé sa dernière solution DDR5 au Salon international de l'informatique de Taipei 2024 et a proposé les versions SO-DIMM, CUDIMM, CSODIMM, CAMM2 et LPCAMM2. ▲ Source de l'image : Wccftech Comme le montre l'image, la mémoire CAMM2/LPCAMM2 présentée par Jinbang adopte un design très compact, peut fournir une capacité maximale de 128 Go et une vitesse allant jusqu'à 8533 MT/s. Certains de ces produits peuvent même l'être. stable sur la plateforme AMDAM5 Overclocké à 9000MT/s sans aucun refroidissement auxiliaire. Selon les rapports, la mémoire de la série Polaris RGBDDR5 2024 de Jinbang peut fournir jusqu'à 8 400

See all articles