Existe-t-il un moyen de vider les objets en mémoire à partir d'un processus ruby ??en cours d'exécution?

StackOverflow https://stackoverflow.com/questions/116527

  •  02-07-2019
  •  | 
  •  

Question

Tuer le processus tout en obtenant cette information irait bien.

Était-ce utile?

La solution

Pour les plus fervents, il existe également BleakHouse qui vous donne une copie spéciale de ruby ??spécialement compilée avec un meilleur suivi des fuites de mémoire powarz

Autres conseils

Une méthode rapide et fictive serait ObjectSpace.each_object {| e | p e} . Vous pouvez effectuer des tests pour déterminer ce que vous souhaitez conserver, ou écarter les objets.

Pour 1.9.2 / 1.9.3, il y a gem heap_dump, il peut être injecté dans un processus en cours d'exécution à l'aide de gdb (mais la solution la plus stable consiste à l'inclure dans le processus proprement dit, sans perte de performances).

Il supprime les références aux objets, pas aux objets eux-mêmes, mais ceci est utilisable si vous souhaitez combattre les fuites

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top