Maison développement back-end Golang Comment libérer la mémoire de la carte dans Golang ?

Comment libérer la mémoire de la carte dans Golang ?

Jul 18, 2020 pm 03:03 PM
golang map 内存

Méthode de Golang pour libérer la mémoire de la carte : supprimez d'abord toutes les clés de la carte, et la mémoire occupée par la carte est toujours dans [état utilisé], puis la carte est définie sur zéro et la mémoire occupée par la carte est ; dans [état inactif] ; enfin, la mémoire d'état est inactive et peut être réutilisée dans la prochaine application dans un certain laps de temps sans avoir à s'appliquer à nouveau au système d'exploitation.

Comment libérer la mémoire de la carte dans Golang ?

Méthode de Golang pour libérer la mémoire de la carte :

Exemple de code :
version go : 1.12.9

package main
import (
    "log"
    "runtime"
)
var intMap map[int]int
var cnt = 8192
func main() {
    printMemStats()
    initMap()
    runtime.GC()
    printMemStats()
    log.Println(len(intMap))
    for i := 0; i < cnt; i++ {
        delete(intMap, i)
    }
    log.Println(len(intMap))
    runtime.GC()
    printMemStats()
    intMap = nil
    runtime.GC()
    printMemStats()
}
func initMap() {
    intMap = make(map[int]int, cnt)
    for i := 0; i < cnt; i++ {
        intMap[i] = i
    }
}
func printMemStats() {
    var m runtime.MemStats
    runtime.ReadMemStats(&m)
    log.Printf("Alloc = %v TotalAlloc = %v Sys = %v NumGC = %v\n", m.Alloc/1024, m.TotalAlloc/1024, m.Sys/1024, m.NumGC)
}
Copier après la connexion

Résultat de sortie :

2019/11/22 15:42:33 Alloc = 138 TotalAlloc = 138 Sys = 68290 NumGC = 0
2019/11/22 15:42:33 Alloc = 456 TotalAlloc = 460 Sys = 68610 NumGC = 1
2019/11/22 15:42:33 8192
2019/11/22 15:42:33 0
2019/11/22 15:42:33 Alloc = 458 TotalAlloc = 464 Sys = 68674 NumGC = 2
2019/11/22 15:42:33 Alloc = 146 TotalAlloc = 466 Sys = 68674 NumGC = 3
Copier après la connexion

Description du champ :

  • Alloc : La taille de la mémoire occupée par l'objet sur le tas actuel ;

  • TotalAlloc : La taille totale de la mémoire allouée sur le tas

  • Sys : La taille totale de la mémoire demandée par le programme au système d'exploitation ; ;

  • NumGC : Le nombre de cycles de collecte des déchets.

Il ressort des résultats d'exécution que la mémoire occupée après la suppression de la clé dans la carte n'a pas été libérée.

Conclusion :
La carte de Golang ne libérera pas la mémoire immédiatement après la suppression de la clé, donc à mesure que le programme s'exécute, la mémoire occupée par la carte ne fera en fait qu'augmenter. . De plus, GC accédera à chaque élément de la carte pendant la phase de marquage, ce qui entraînera une surcharge très importante sur les performances du programme lorsque la carte est très grande. Cependant, après la version 1.5, si la clé et la valeur de la carte ne contiennent pas de pointeurs, le GC ignorera la carte.

Recommandations d'apprentissage associées : Tutoriel de langue Go

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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

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.

Comment lire et écrire des fichiers en toute sécurité avec Golang ? Comment lire et écrire des fichiers en toute sécurité avec Golang ? Jun 06, 2024 pm 05:14 PM

Lire et écrire des fichiers en toute sécurité dans Go est crucial. Les directives incluent : Vérification des autorisations de fichiers Fermeture de fichiers à l'aide de reports Validation des chemins de fichiers Utilisation de délais d'attente contextuels Le respect de ces directives garantit la sécurité de vos données et la robustesse de vos applications.

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

Les spécifications des mémoires DDR5 MRDIMM et LPDDR6 CAMM sont prêtes à être lancées, JEDEC publie des détails techniques clés Les spécifications des mémoires DDR5 MRDIMM et LPDDR6 CAMM sont prêtes à être lancées, JEDEC publie des détails techniques clés Jul 23, 2024 pm 02:25 PM

Selon les informations de ce site Web du 23 juillet, la JEDEC Solid State Technology Association, l'organisme de normalisation de la microélectronique, a annoncé le 22, heure locale, que les spécifications techniques des mémoires DDR5MRDIMM et LPDDR6CAMM seraient bientôt officiellement lancées et a présenté les détails clés de ces deux souvenirs. Le « MR » dans DDR5MRDIMM signifie MultiplexedRank, ce qui signifie que la mémoire prend en charge deux rangs ou plus et peut combiner et transmettre plusieurs signaux de données sur un seul canal sans connexion physique supplémentaire. La connexion peut effectivement augmenter la bande passante. JEDEC a prévu plusieurs générations de mémoire DDR5MRDIMM, dans le but d'augmenter à terme sa bande passante à 12,8 Gbit/s, contre 6,4 Gbit/s actuellement pour la mémoire DDR5RDIMM.

Galerie de photos de la mémoire Lexar God of War Wings ARES RGB DDR5 8000 : Les ailes blanches colorées prennent en charge le RVB Galerie de photos de la mémoire Lexar God of War Wings ARES RGB DDR5 8000 : Les ailes blanches colorées prennent en charge le RVB Jun 25, 2024 pm 01:51 PM

Alors que les prix des mémoires phares UHF telles que 7 600 MT/s et 8 000 MT/s sont généralement élevés, Lexar a pris des mesures et a lancé une nouvelle série de mémoires appelée Ares Wings ARES RGB DDR5, avec 7 600 C36 et 8 000 C38 disponibles en deux spécifications. Les ensembles de 16 Go*2 coûtent respectivement 1 299 yuans et 1 499 yuans, ce qui est très rentable. Ce site s'est procuré la version 8000 C38 de Wings of War, et vous apportera ses photos du déballage. L'emballage de la mémoire Lexar Wings ARES RGB DDR5 est bien conçu, utilisant des couleurs noir et rouge accrocheuses avec une impression colorée. Il y a un &quo exclusif dans le coin supérieur gauche de l'emballage.

Il est rapporté que Samsung Electronics a confirmé son investissement dans la ligne de production de mémoire DRAM 1cnm de l'usine Pyeongtaek P4 et vise à la mettre en service en juin de l'année prochaine. Il est rapporté que Samsung Electronics a confirmé son investissement dans la ligne de production de mémoire DRAM 1cnm de l'usine Pyeongtaek P4 et vise à la mettre en service en juin de l'année prochaine. Aug 12, 2024 pm 04:31 PM

Selon des informations publiées sur ce site le 12 août, le média coréen ETNews a rapporté que Samsung Electronics avait confirmé en interne son plan d'investissement pour construire une ligne de production de mémoire DRAM de 1 cnm dans l'usine P4 de Pyeongtaek. La ligne de production devrait être mise en service en juin prochain. année. Pyeongtaek P4 est un centre complet de production de semi-conducteurs divisé en quatre phases. Dans la planification précédente, la première phase concernait la mémoire flash NAND, la deuxième phase concernait la fonderie logique et les troisième et quatrième phases concernaient la mémoire DRAM. Samsung a introduit des équipements de production de DRAM dans la première phase du P4, mais a abandonné la deuxième phase de construction. La DRAM 1cnm est le processus de mémoire 20 ~ 10 nm de sixième génération, et les produits 1cnm (ou 1γnm correspondant) de chaque entreprise n'ont pas encore été officiellement lancés. Les médias coréens ont rapporté que Samsung Electronics prévoyait de démarrer la production de mémoire de 1 cnm à la fin de cette année. ▲Samsung Pyeongtaek

Mise à niveau majeure de la série iPhone 17 : toutes les séries ont des écrans LTPO et jusqu'à 12 Go de mémoire Mise à niveau majeure de la série iPhone 17 : toutes les séries ont des écrans LTPO et jusqu'à 12 Go de mémoire Jul 24, 2024 pm 01:39 PM

Récemment, un blogueur a révélé les paramètres de la série iPhone 17. Cette série sera équipée en standard d'écrans LTPO et la mémoire sera mise à niveau jusqu'à 12 Go. La série iPhone17 comprendra quatre modèles : iPhone17, iPhone17Pro, iPhone17ProMax et iPhone17Slim, avec des tailles d'écran de 6,27 pouces, 6,27 pouces, 6,86 pouces et 6,65 pouces respectivement. Tous les modèles seront équipés de panneaux LTPO et prendront en charge les taux de rafraîchissement variables ProMotion. C'est la première fois qu'Apple propose des écrans à taux de rafraîchissement élevé sur les modèles standard. De plus, les deux modèles Pro iPhone17Pro et iPhone17ProMax seront livrés en standard avec 1

See all articles