The exact same json file runs very quick on my Windows PC, but very slow on the Raspberry Pi. The flow is quite large spread over many tabs, and I am using Dashboard as well.
When I say quick, I mean when I am in the editor I click on a tab it will instantly change on Windows, but might take 5-10 seconds to open on the PI. Copy and paste of nodes very slow, opening a node to edit is slow, everything is slooooow.
Its a 4Gb CM4. Running "free -m" shows I have 3838 total Mem, 762 used, 2477 free, 95 shared, 598 buff, 2872 available so seems to have plenty of memory available.
Beyond the world of single-board computers, the Pi 4's performance in that test is about as fast as a decent 2007-era Intel Core 2 processor. It's six times slower than our reference AMD Ryzen 5 1600 based desktop PC. But then again, that AMD CPU alone costs three times as much as the whole Pi 4.
Interesting comment on the processor. I would not have though that just clicking on a node to open it, trying to move it or moving between tabs would be so CPU intensive. Sometimes I literally can't get it to open a node by double clicking it, I need to highlight it then press enter to open it.
The browser is on the Pi. I edit the nodes on the Pi mostly, the deploy is on the Pi.
A browser is a beast of a program. The PI is relatively decent for computational (runtime) stuff but it is the GUI and BROWSER running on the same machine - coupled with full deploy that is your enemy here.
In short, I don't even run a GUI on my PI - only SSH access. The browser to access the PIs node-red is on another device.
Lets say you have 500 nodes in all your flows/tabs. Then you add 1 more, edit 1 and remove 3 - you have made 5 changes.
full deploy - destroys all 500 modes, closes any open connections (mqtt, TCP, modbus, etc), then rebuilds them completely and then deploys them to the runtime at which point they need to re-connect to any services or transports they use.
flow deploy - finds and destroys all connected (by wire) nodes in the flows that were wired upstream or downstream to the modified nodes.
node deploy - just destroys/closes/re-creates the 5 nodes you changed.
NOTE: Each time nodes are torn down & rebuilt, there is a slight chance of a resources or mem block being locked (leakage). The less nodes re-created, the less opportunities.
So 20 modifications of 5 nodes =
Full Deploy: 10000 nodes destroyed, disconnected, rebuilt, redeployed