Salut J'essaie d'importer une énorme quantité de données. c'est environ 8Go ayant plus de 53k fichiers. Ce que je veux est d'importer un fichier à la fois, fait avec son utilisation, puis supprimer/supprimer ou garbage collecter le cache.Comment effacer/garbage collecter une valeur de variable locale après que son utilisation est terminée
Je sais que lorsque nous utilisons le mot-clé delete
, il supprime uniquement la référence de l'instance d'obj. Supprimer ou faire une valeur variable à null
ou undefined
ne fonctionne pas.
Voici mon code. J'ai essayé tous les moyens possibles pour rendre le cache vide mais pas réussi.
fs.readdir(dirname, (err, filenames) => {
if (err) {
onError(err);
return;
}
_.forEach(filenames, (file) => {
if (!!~file.indexOf('.json')) {
this.synchronize(() => {
let currentFile = require(`${dirname}${file}`);
return new Promise((resolve, reject) => {
setTimeout(() => {
//assume am done working with the data imported in variable currentFile here. now i want to delete it.
resolve('Done');
}, 1)
})
})
}
});
});
Y a-t-il un moyen d'effacer le currentFile
après avoir fini de travailler dessus?
Ou peut-être comment modifier mon code pour obtenir la fonctionnalité qui fonctionnera pour un certain nombre de fichiers dans le dossier.
toute aide sera appréciée
Essayez d'utiliser 'JSON.parse (fs.readFile (...))' à la place de 'require', qui utilise le cache de module global. Ou effacer ce cache - voir les questions en double. – Bergi