# Does Node-RED flow execution run faster than debug or UI updates like counters?

**URL:** <https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629>\
**Category:** General\
**Created:** [24 October 2024 10:15 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629 "2024-10-24T10:15:22Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![flipzz](https://avatars.discourse-cdn.com/v4/letter/f/bb73d2/32.png) [@flipzz](https://discourse.nodered.org/u/flipzz)\
**Post date:** [24 October 2024 10:15 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/1 "2024-10-24T10:15:22Z")

</div>

In my Node-RED flow, I'm noticing that the execution seems to happen faster than what is shown in the UI, such as in the debug panel or flow dashboard. For example, in a **delay node** , the counter seems to count up to the maximum value first, and only then starts counting down. Similarly, in a **semaphore node** , it seems like the flow executes faster than the semaphore or counter values are updated in the UI.

Are there any known issues or limitations around flow execution speed vs. visual updates in Node-RED? If so, are there best practices to ensure that the UI/debug output reflects real-time flow execution more accurately?

Thanks in advance!

```json
[
    {
        "id": "126579a8ffc1a561",
        "type": "tab",
        "label": "Flow 2",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "a7473374bbbf2b69",
        "type": "inject",
        "z": "126579a8ffc1a561",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 200,
        "y": 140,
        "wires": [
            [
                "13c16fc29acfe07b"
            ]
        ]
    },
    {
        "id": "a5a1f48989e4919d",
        "type": "delay",
        "z": "126579a8ffc1a561",
        "name": "",
        "pauseType": "delay",
        "timeout": "2",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 540,
        "y": 240,
        "wires": [
            [
                "060ce61290c094cb"
            ]
        ]
    },
    {
        "id": "060ce61290c094cb",
        "type": "debug",
        "z": "126579a8ffc1a561",
        "name": "debug 301",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 850,
        "y": 240,
        "wires": []
    },
    {
        "id": "13c16fc29acfe07b",
        "type": "function",
        "z": "126579a8ffc1a561",
        "name": "function 87",
        "func": "// Create an array to hold the messages\nlet messages = [];\n\n// Loop 1000 times to generate messages\nfor (let i = 0; i < 10000; i++) {\n // Create a message with a payload\n let msg = {\n payload: `Message number: ${i + 1}`\n };\n\n // Add the message to the array\n messages.push({ ...msg });\n}\n\n// Return the array of messages, which sends all at once\nreturn [messages];\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 310,
        "y": 240,
        "wires": [
            [
                "a5a1f48989e4919d"
            ]
        ]
    }
]

```

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [24 October 2024 10:29 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/2 "2024-10-24T10:29:36Z")

</div>

The flow will execute as fast as it can.

updates to the web client (hte editor) will occur soon after - via a web-scoket so there can be a discernible delay in the update comething through - however this is only a visualisation. What happens at the backend (in the flows) always works as it should.

Occationaly, depending on how much/how frequenet the updates are (like debug messages, status node updates), they will be matched.

> [@flipzz](#):
>
> Are there any known issues or limitations around flow execution speed vs. visual updates in Node-RED? If so, are there best practices to ensure that the UI/debug output reflects real-time flow execution more accurately

If you have LOTS of debug nodes with fast moving messages, it could impact flow speed execution (while it prepares and posts the status to the connected clients) - so i would recommend you dont have too many debug nodes outputting large messages at high speed (disable them or delete them once you have stable flows)

---

<div class="post-metadata">

**Author:** ![smanjunath211](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/smanjunath211/32/95742_2.png) [@smanjunath211](https://discourse.nodered.org/u/smanjunath211)\
**Post date:** [24 October 2024 11:58 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/3 "2024-10-24T11:58:13Z")

</div>

> [@Steve-Mcl](#):
>
> disable them

any shortcuts to disable all the debugs in the flows ?

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [24 October 2024 12:20 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/4 "2024-10-24T12:20:38Z")

</div>

Switch them all off - Yes. `CTRL-SHIFT-P`, Deactivate All Debug Nodes

![chrome_g1YRZYqabj](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/5/15a9564679e843e9f0413814f3ebb7d42e4ba80c.gif)

Disable them - yes. Select them, `CTRL-SHIFT-P`, Disable Selected Nodes

![chrome_qFuX927edg](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/6/f6c5a7a069ea727b9c6bac91ee43f1b307bf1387.gif)

---

<div class="post-metadata">

**Author:** ![flipzz](https://avatars.discourse-cdn.com/v4/letter/f/bb73d2/32.png) [@flipzz](https://discourse.nodered.org/u/flipzz)\
**Post date:** [24 October 2024 13:03 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/5 "2024-10-24T13:03:42Z")

</div>

Thanks,

Is there a difference between disable and deactivate then it comes to the performance?

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [24 October 2024 13:06 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/6 "2024-10-24T13:06:20Z")

</div>

I've not checked. I suppose the flow start up time is _slightly_ faster when disabled (since disabled nodes are not instantiated)

Are you actually having performance issues?

---

<div class="post-metadata">

**Author:** ![flipzz](https://avatars.discourse-cdn.com/v4/letter/f/bb73d2/32.png) [@flipzz](https://discourse.nodered.org/u/flipzz)\
**Post date:** [25 October 2024 08:29 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/7 "2024-10-25T08:29:16Z")

</div>

I get a feeling that the rendering of counters etc is impacting the performance of flow execution when I am processing 1000s of messages. I will see if I can setup some minimum example as a test and see if that the case.

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [25 October 2024 08:32 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/8 "2024-10-25T08:32:01Z")

</div>

You can disable node-statuses in Node-RED settings

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/c/ece8f3e950b48fc5804e6b440eff5cc50b2c44d5.png)

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [25 October 2024 08:47 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/9 "2024-10-25T08:47:32Z")

</div>

you can also run without the editor open... 🙂  
(it is not a dashboard, etc... )

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [25 October 2024 08:58 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/10 "2024-10-25T08:58:55Z")

</div>

> [@flipzz](#):
>
> I get a feeling that the rendering of counters etc is impacting the performance of flow execution

What hardware is node red running on, and is the browser running in the same machine? If you are running a browser and node-red on a low power machine then the browser may be clobbering the system. Generally the browser will take a lot more CPU than node-red.

---

<div class="post-metadata">

**Author:** ![flipzz](https://avatars.discourse-cdn.com/v4/letter/f/bb73d2/32.png) [@flipzz](https://discourse.nodered.org/u/flipzz)\
**Post date:** [7 December 2024 10:10 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/11 "2024-12-07T10:10:53Z")

</div>

I've run it on the same machine + browser using Docker on a Macbook Air M2 (so a rather powerful machine). But my feeling is that the rendering of counters is what takes time. Specifically I have the behaviour when queueing requests using the Semaphore node - so that nodes implementation might affect the behaviour extra much.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [7 December 2024 17:25 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/12 "2024-12-07T17:25:33Z")

</div>

True, every packet sent to the ui via the web socket has to be unpacked, checked, and ackd. Some of the core nodes like delay node deliberately only send status updates only 3 times a second with the latest value rather than every single value. I don’t know what the semaphore node does.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [7 March 2025 17:26 UTC](https://discourse.nodered.org/t/does-node-red-flow-execution-run-faster-than-debug-or-ui-updates-like-counters/92629/13 "2025-03-07T17:26:12Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
