Is there a significant performance impact on flows by the mere fact that the node-red editor is running? I'm asking out of curiosity. If there's any documentation available that explains the interaction between nodejs and node-red, that would be handy. Thanks!
Just running a web browser on a small device like a Raspberry Pi adds a significant amount of load to the processor. If you are using "Dashboard" and have that open in a second browser page that will add a further significant load. If you have fast changing data (more than once a second) you will see it sometimes struggle to keep up.
Right, I've experienced the load that Chromium puts on the pi, but I typically run the editor from another computer. That's the scenario I'm interested in. I imagine that there must be listeners that get wired up between nodejs and the node-red client. This is where the performance degradation might occur, and I'd like someone to tell me that there's either 1) none whatsoever, 2) a tiny bit, or 3) it's good to avoid running the editor if you're tight on performance.
The main extra load is the websocket from the server to the editor. This has to handle all the status updates (under each node) and debug and context output (sidebar). Individually these are all usually quite small, but of course lots added together can have quite an impact.
Obviously sending large objects to debug is not great, as we process each one to format it for the sidebar, and if they back up that can then put queuing load on the server. Likewise a very high rate of delivery can do the same.
We do have some mitigations in place. Obviously you can turn off debug nodes so data isn't sent. We also truncate large messages (length can be set in settings.js) and also check queue depth and if too large, skip older messages (as you can't scroll back that far anyway) . Also for some nodes we only send status intermittently so as to not waste time toggling things you won't see - I'm sure there are some we haven't spotted that could do with this treatment. But again the visibility of status can be turned off completely.
So yes the editor can have an impact, but indeed the whole point is that it is just an editor, and can be closed during operation.. After all I don't run my other apps in an IDE.