2017-07-11 1 views
0

J'ai une application nodejs qui doit être conforme à la norme PCI/DSS.Comment supprimer une variable de la mémoire du serveur?

Exemple:

let number = "91029039102930193092" 

Comment puis-je retirer efficacement de la mémoire ou V8 collecteur de chou? Est-ce que je peux faire ceci: number = "" pour le réinitialiser à la chaîne vide?

+0

Oui, vous pouvez faire 'number =" "' ou 'delete number;' –

+0

@ ponury-kostek qui ne le supprimerait pas nécessairement de la mémoire immédiatement. – robertklep

+1

Où la variable est-elle déclarée? Si c'est dans une fonction, la variable sera récupérée lorsque la fonction aura fini de s'exécuter. S'il s'agit d'une portée globale, il peut rester dans la mémoire pendant toute la durée de vie de l'application nodejs. –

Répondre

1

Vous pouvez exécuter un nœud avec l'indicateur --expose_gc. Dans votre code, vous pouvez faire

number = ""; 

ou

delete number; 

et après cette force gc

global.gc(); 

Cela vous donnera la possibilité de mettre immédiatement la mémoire libre

delete number; 
global.gc(); 

et plus sûr

number = undefined; 
global.gc();