Duniter 1.2.3 | Fuite mémoire

On aurait pu supposer oui, et c’est ce que j’ai fait. Mais j’ai pu me rendre compte que cette fois le C++ n’y est pour rien.

Donc pour ces 5% restants, ce sont en réalité quelques new en JavaScript qui posent problème lors des copies de la WoT en mémoire :

Et :

https://github.com/duniter/duniter/blob/master/app/lib/wot.js#L16

Pour une raison que j’ignore, cela fait grimper la mémoire sans limite. Pourtant le heapdump reste constant. Alors on est peut-être sur un bug de V8 (le moteur JavaScript), ou encore sur un cas aux limites, je ne sais pas bien.

Toujours est-il qu’avec ces solutions, et en sollicitation intensive, je tourne aux environs de :

  • 250 Mo de RAM sans brides (c’est-à-dire en retirant l’option --max_old_space_size=150)
  • 130 Mo de RAM si je lui mets de brides plus fortes (--max_old_space_size=100)
  • 0 Mo de RAM si je descends plus bas (mettons --max_old_space_size=50) : il crash au bout de quelques secondes

Bon, ça me paraît pas mal :slight_smile: je teste encore un peu tout ça, et je ferai une 1.2.4 au plus tard demain.

1 Like