When there are more than 10 event listeners, NodeJS alerts a warning:
(node:56301) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit at AbortSignal.[kNewListener] (node:internal/event_target:426:17)
For the application I am working with, it is fine to have more than 10 event listeners at a given point in time, so I will like to increase the threshold at which this event is triggered. But I need a methodical way to determine what to increase it to. Hence I was thinking, is it possible to estimate the memory used per each event listener? If possible, this can help estimate what the new limit should be.
CodePudding user response:
I would try not to use that much eventListeners, since it consumes more memory
So try to avoid it possible. if you still want it here is the solution.
const { setMaxListeners } = require('events');
const abc = new AbortController()
setMaxListeners(20, abc.signal);
// events module is automatically added to global space,
// so you can also do this `events.setMaxListeners`, no need to import it.
// ...
CodePudding user response:
Node does nor provide such strict control of memory usage, but helps you to prevent overusage of memory. Event listeners do not consume too much memory, but they can cause a memory leak. You can remove listener limit at all, but make sure that memory leak will not occur
emitter.setMaxListeners(0)