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 je teste encore un peu tout ça, et je ferai une 1.2.4 au plus tard demain.