# Slow GUI -- Browser

**URL:** <https://discourse.nodered.org/t/slow-gui-browser/34328>\
**Category:** General\
**Created:** [16 October 2020 02:19 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328 "2020-10-16T02:19:05Z")\
**Posts on this page:** 20\
**Page:** 2

<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:** [21 October 2020 07:41 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/21 "2020-10-21T07:41:34Z")

</div>

This most odd. In particular the rendering time. Your PC or browser is very busy OR your graphics driver could be an issue (doesnt really explain how you see the same issue on multiple computers)

This is the summary of cutting 3 items from a node on my PC...

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/0/20649eea435c4ae8723e5a8c1c8cc0aae4e2c16c.png)

This is a recording (gif) of the operation...

 ![2020-10-21_08-30-40](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/9/69c9feef6440d8c157ebad5d5e24435607e0a88d.gif)  
You can see the time it took is about 78ms  
I also demo how you can go to the code. (click the link displayed in the event log)

  

You should try to find the big items as far down the tree as possible

I would be inclined to look for any code that is NOT node red (perhaps a contrib node or chrome addin). Essentially, ignore items that lead you to red.js and vendor.js (for now)

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [21 October 2020 14:08 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/22 "2020-10-21T14:08:17Z")

</div>

I would ignore vendor.js & red.min.js but that's what is taking the 20-50 seconds. I went down the tree as you mentioned only vendor.js and red.min.js seem to be involved in things that are slow.

Again, please excuse my ignorance in digging thru this. I have never used these tools before or know how to translate.

This line is the source code of vendor.js takes 28.501s:

```auto
"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),window):t(jQuery,window)}(function(s,n){"use strict";function e(e){return 0<=function(e,t){var r,n=/^(\d+)\.(\d+)\.(\d+)/,i=n.exec(e)||[],o=n.exec(t)||[];for(r=1;r<=3;r++){if(+i[r]>+o[r])return 1;if(+i[r]<+o[r])return-1}return 0}(s.fn.jquery,e)}s.migrateVersion="3.3.0",n.console&&n.console.log&&(s&&e("3.0.0")||n.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),s.migrateWarnings&&n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),n.console.log("JQMIGRATE: Migrate is installed"+(s.migrateMute?"":" with logging active")+", version "+s.migrateVersion));var r={};function u(e){var t=n.console;s.migrateDeduplicateWarnings&&r[e]||(r[e]=!0,s.migrateWarnings.push(e),t&&t.warn&&!s.migrateMute&&(t.warn("JQMIGRATE: "+e),s.migrateTrace&&t.trace&&t.trace()))}function t(e,t,r,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return u(n),r},set:function(e){u(n),r=e}})}function i(e,t,r,n){e[t]=function(){return u(n),r.apply(this,arguments)}}s.migrateDeduplicateWarnings=!0,s.migrateWarnings=[],void 0===s.migrateTrace&&(s.migrateTrace=!0),s.migrateReset=function(){r={},s.migrateWarnings.length=0},"BackCompat"===n.document.compatMode&&u("jQuery is not compatible with Quirks Mode");var o,a={},c=s.fn.init,d=s.find,l=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,p=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,f=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;for(o in s.fn.init=function(e){var t=Array.prototype.slice.call(arguments);return"string"==typeof e&&"#"===e&&(u("jQuery( '#' ) is not a valid selector"),t[0]=[]),c.apply(this,t)},s.fn.init.prototype=s.fn,s.find=function(t){var r=Array.prototype.slice.call(arguments);if("string"==typeof t&&l.test(t))try{n.document.querySelector(t)}catch(e){t=t.replace(p,function(e,t,r,n){return"["+t+r+'"'+n+'"]'});try{n.document.querySelector(t),u("Attribute selector with '#' must be quoted: "+r[0]),r[0]=t}catch(e){u("Attribute selector with '#' was not fixed: "+r[0])}}return d.apply(this,r)},d)Object.prototype.hasOwnProperty.call(d,o)&&(s.find[o]=d[o]);if(i(s.fn,"size",function(){return this.length},"jQuery.fn.size() is deprecated and removed; use the .length property"),i(s,"parseJSON",function(){return JSON.parse.apply(null,arguments)},"jQuery.parseJSON is deprecated; use JSON.parse"),i(s,"holdReady",s.holdReady,"jQuery.holdReady is deprecated"),i(s,"unique",s.uniqueSort,"jQuery.unique is deprecated; use jQuery.uniqueSort"),t(s.expr,"filters",s.expr.pseudos,"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),t(s.expr,":",s.expr.pseudos,"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"),e("3.1.1")&&i(s,"trim",function(e){return null==e?"":(e+"").replace(f,"")},"jQuery.trim is deprecated; use String.prototype.trim"),e("3.2.0")&&i(s,"nodeName",function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},"jQuery.nodeName is deprecated"),e("3.3.0")&&(i(s,"isNumeric",function(e){var t=typeof e;return("number"==t||"string"==t)&&!isNaN(e-parseFloat(e))},"jQuery.isNumeric() is deprecated"),s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){a["[object "+t+"]"]=t.toLowerCase()}),i(s,"type",function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?a[Object.prototype.toString.call(e)]||"object":typeof e},"jQuery.type is deprecated"),i(s,"isFunction",function(e){return"function"==typeof e},"jQuery.isFunction() is deprecated"),i(s,"isWindow",function(e){return null!=e&&e===e.window},"jQuery.isWindow() is deprecated"),i(s,"isArray",Array.isArray,"jQuery.isArray is deprecated; use Array.isArray")),s.ajax){var y=s.ajax;s.ajax=function(){var e=y.apply(this,arguments);return e.promise&&(i(e,"success",e.done,"jQXHR.success is deprecated and removed"),i(e,"error",e.fail,"jQXHR.error is deprecated and removed"),i(e,"complete",e.always,"jQXHR.complete is deprecated and removed")),e}}var m=s.fn.removeAttr,g=s.fn.toggleClass,h=/\S+/g;function v(e){return e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()})}s.fn.removeAttr=function(e){var r=this;return s.each(e.match(h),function(e,t){s.expr.match.bool.test(t)&&(u("jQuery.fn.removeAttr no longer sets boolean properties: "+t),r.prop(t,!1))}),m.apply(this,arguments)};var j,Q=!(s.fn.toggleClass=function(t){return void 0!==t&&"boolean"!=typeof t?g.apply(this,arguments):(u("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var e=this.getAttribute&&this.getAttribute("class")||"";e&&s.data(this," __className__",e),this.setAttribute&&this.setAttribute("class",e||!1===t?"":s.data(this," __className__")||"")}))}),b=/^[a-z]/,w=/^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;s.swap&&s.each(["height","width","reliableMarginRight"],function(e,t){var r=s.cssHooks[t]&&s.cssHooks[t].get;r&&(s.cssHooks[t].get=function(){var e;return Q=!0,e=r.apply(this,arguments),Q=!1,e})}),s.swap=function(e,t,r,n){var i,o,a={};for(o in Q||u("jQuery.swap() is undocumented and deprecated"),t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=r.apply(e,n||[]),t)e.style[o]=a[o];return i},e("3.4.0")&&"undefined"!=typeof Proxy&&(s.cssProps=new Proxy(s.cssProps||{},{set:function(){return u("JQMIGRATE: jQuery.cssProps is deprecated"),Reflect.set.apply(this,arguments)}})),s.cssNumber||(s.cssNumber={}),j=s.fn.css,s.fn.css=function(e,t){var r=this;return"string"!=typeof e&&s.each(e,function(e,t){s.fn.css.call(r,e,t)}),"number"!=typeof t||function(e){return b.test(e)&&w.test(e[0].toUpperCase()+e.slice(1))}(v(e))||u("Use of number-typed values is deprecated in jQuery.fn.css"),j.apply(this,arguments)};var x=s.data;if(s.data=function(e,t,r){var n,i,o;if(t&&"object"==typeof t&&2===arguments.length){for(o in n=s.hasData(e)&&x.call(this,e),i={},t)o!==v(o)?(u("jQuery.data() always sets/gets camelCased names: "+o),n[o]=t[o]):i[o]=t[o];return x.call(this,e,i),t}return t&&"string"==typeof t&&t!==v(t)&&(n=s.hasData(e)&&x.call(this,e))&&t in n?(u("jQuery.data() always sets/gets camelCased names: "+t),2<arguments.length&&(n[t]=r),n[t]):x.apply(this,arguments)},s.fx){var A,k,M=s.Tween.prototype.run,S=function(e){return e};s.Tween.prototype.run=function(){1<s.easing[this.easing].length&&(u("'jQuery.easing."+this.easing.toString()+"' should use only one argument"),s.easing[this.easing]=S),M.apply(this,arguments)},A=s.fx.interval||13,k="jQuery.fx.interval is deprecated",n.requestAnimationFrame&&Object.defineProperty(s.fx,"interval",{configurable:!0,enumerable:!0,get:function(){return n.document.hidden||u(k),A},set:function(e){u(k),A=e}})}var H=s.fn.load,R=s.event.add,N=s.event.fix;s.event.props=[],s.event.fixHooks={},t(s.event.props,"concat",s.event.props.concat,"jQuery.event.props.concat() is deprecated and removed"),s.event.fix=function(e){var t,r=e.type,n=this.fixHooks[r],i=s.event.props;if(i.length){u("jQuery.event.props are deprecated and removed: "+i.join());while(i.length)s.event.addProp(i.pop())}if(n&&!n._migrated_&&(n._migrated_=!0,u("jQuery.event.fixHooks are deprecated and removed: "+r),(i=n.props)&&i.length))while(i.length)s.event.addProp(i.pop());return t=N.call(this,e),n&&n.filter?n.filter(t,e):t},s.event.add=function(e,t){return e===n&&"load"===t&&"complete"===n.document.readyState&&u("jQuery(window).on('load'...) called after load event occurred"),R.apply(this,arguments)},s.each(["load","unload","error"],function(e,t){s.fn[t]=function(){var e=Array.prototype.slice.call(arguments,0);return"load"===t&&"string"==typeof e[0]?H.apply(this,e):(u("jQuery.fn."+t+"() is deprecated"),e.splice(0,0,t),arguments.length?this.on.apply(this,e):(this.triggerHandler.apply(this,e),this))}}),s.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,r){s.fn[r]=function(e,t){return u("jQuery.fn."+r+"() event shorthand is deprecated"),0<arguments.length?this.on(r,null,e,t):this.trigger(r)}}),s(function(){s(n.document).triggerHandler("ready")}),s.event.special.ready={setup:function(){this===n.document&&u("'ready' event is deprecated")}},s.fn.extend({bind:function(e,t,r){return u("jQuery.fn.bind() is deprecated"),this.on(e,null,t,r)},unbind:function(e,t){return u("jQuery.fn.unbind() is deprecated"),this.off(e,null,t)},delegate:function(e,t,r,n){return u("jQuery.fn.delegate() is deprecated"),this.on(t,e,r,n)},undelegate:function(e,t,r){return u("jQuery.fn.undelegate() is deprecated"),1===arguments.length?this.off(e,"**"):this.off(t,e||"**",r)},hover:function(e,t){return u("jQuery.fn.hover() is deprecated"),this.on("mouseenter",e).on("mouseleave",t||e)}});function C(e){var t=n.document.implementation.createHTMLDocument("");return t.body.innerHTML=e,t.body&&t.body.innerHTML}function T(e){var t=e.replace(P,"<$1></$2>");t!==e&&C(e)!==C(t)&&u("HTML tags must be properly nested and closed: "+e)}var P=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,q=s.htmlPrefilter;s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.htmlPrefilter=function(e){return T(e),e.replace(P,"<$1></$2>")}},s.htmlPrefilter=function(e){return T(e),q(e)};var D=s.fn.offset;if(s.fn.offset=function(){var e,t=this[0];if(t&&t.nodeType)return e=(t.ownerDocument||n.document).documentElement,s.contains(e,t)?D.apply(this,arguments):(u("jQuery.fn.offset() requires an element connected to a document"),{top:0,left:0});u("jQuery.fn.offset() requires a valid DOM element")},s.ajax){var E=s.param;s.param=function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(u("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),E.call(this,e,t)}}var _=s.fn.andSelf||s.fn.addBack;if(s.fn.andSelf=function(){return u("jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),_.apply(this,arguments)},s.Deferred){var F=s.Deferred,O=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]];s.Deferred=function(e){var o=F(),a=o.promise();return o.pipe=a.pipe=function(){var i=arguments;return u("deferred.pipe() is deprecated"),s.Deferred(function(n){s.each(O,function(e,t){var r="function"==typeof i[e]&&i[e];o[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===a?n.promise():this,r?[e]:arguments)})}),i=null}).promise()},e&&e.call(o,o),o},s.Deferred.exceptionHook=F.exceptionHook}return s});

```

It's the 4th line in the code

---

<div class="post-metadata">

**Author:** ![Nodi.Rubrum](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/nodi.rubrum/32/107482_2.png) [@Nodi.Rubrum](https://discourse.nodered.org/u/Nodi.Rubrum)\
**Post date:** [21 October 2020 16:16 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/23 "2020-10-21T16:16:22Z")

</div>

Just a side note... the node for speed test is very broken, I continued to test last night, and I am now frequently getting ECONNRESET errors from the speed test node, whereas the CLI via an exec node has yet to fail once.

I also tried Microsoft Edge, FireFox and Chrome (all latest) via several flows that I know can be intensive in reference to loading client and server side, have not seen any issues. This is all after I disabled Microsoft Search. Microsoft Search on Windows 10 would routinely impact my system and browser, known issue.

There are a few apps that target PC internals to spot hardware interrupt issues. If you have any driver that is doing odd stuff, it can nail the performance of the core system, and NOT show up via typical monitoring tools. We learned how this can happen working with virtual machines via VMware/KVM/Hyper-V where driver and low level interrupts (physical or virtual) can impact systems where the (local) OS instance fails to see such. Just a thought.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [21 October 2020 19:02 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/24 "2020-10-21T19:02:15Z")

</div>

Bit late to this but did you try disabling all browser extensions? Better still, create a new browser profile and keep it clean. Use that for this kind of testing. I've had situations that can really kill browser performance - indeed, one of my most relied on extensions, LastPass, can be a bit of a pain in the performance area.

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [21 October 2020 19:57 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/25 "2020-10-21T19:57:07Z")

</div>

I hadn't but just tried both options. No change. UUUUGGGGHHHH!!! 🙂

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [31 October 2020 01:01 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/26 "2020-10-31T01:01:51Z")

</div>

I just installed Node Red on an Ubuntu VirtualBox on a Windows Machine as a test and have the same problem. This is kicking my a$$!

This time I noticed that Rasterize Thread 1 & 2 took 90 seconds. Unfortunately, I can't figure out what that means either. Google is not my friend and Ignorance is NOT Bliss. 🙂

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/9/79e70d0a72cee1c716cc0ea29661d3e3dee35206.png)

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [25 November 2020 20:44 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/27 "2020-11-25T20:44:48Z")

</div>

> [@Steve-Mcl](#):
>
> If the OP pastes his flow we can evaluate this.

@Steve-Mcl@Nodi.Rubrum

What's the best way to do this without sharing sensitive config info. I assume using Export to text is not the most efficient.

---

<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 November 2020 20:48 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/28 "2020-11-25T20:48:13Z")

</div>

Sensitive info like Usernames, Passwords, tokens etc are not exported from configs

But to be certain, simply export your flow, paste into a text/code editor, search for known sensitive info - XXXXX it out (if there is any)

To export flows, press CTRL+E and copy the flow code

#### canned text...

In order to make code more readable and importable it is important to surround your code with three backticks  
`````  
`like this`  
`````

You can edit and correct your post by clicking the pencil icon.

See this post for more details - [How to share code or flow json](https://discourse.nodered.org/t/how-to-share-code-or-flow-json/506)

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [25 November 2020 20:52 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/29 "2020-11-25T20:52:39Z")

</div>

Ok I thought there might be a better way if trying to share all of my flows to troubleshoot. Thank you.

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [26 November 2020 06:38 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/30 "2020-11-26T06:38:08Z")

</div>

I tried importing entire flow.json and got this message:

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

then I read past the 1st post in other thread you shared. 😃

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [26 November 2020 14:47 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/31 "2020-11-26T14:47:23Z")

</div>

I can tell you right now, no body is going to try to figure out what your flow is doing, it is just too large. (over 25 tabs of flows)

I would suggest disabling tabs till you isolate the issue

---

<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:** [26 November 2020 15:01 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/32 "2020-11-26T15:01:12Z")

</div>

> [@zenofmud](#):
>
> I can tell you right now, no body is going to try to figure out what your flow is doing

I did 😛

Its huuuuuugggggeeeee & while I didnt see the 20sec freezes like the OP (on a i7 PC with 16GB RAM) I it was definitely sluggish (2 / 3 sec delays) so i suspect a lesser machine would struggle.

there are certainly areas that could be improved (like several places a switch node with 10+ outputs and its following nodes could all be simplified into one function & a switch statement) but i kinda suspect its just down the these shear volume of nodes and wires in one instance.

If you can break these down somewhat, distribute them across multiple machines (probably even [separate instances](https://discourse.nodered.org/t/node-red-multiple-instances/9787/7) on the same server would help) then start there. Use MQTT to coordinate the signals where things interact.

  

> [@zenofmud](#):
>
> I would suggest disabling tabs till you isolate the issue

I suspect its down to the shear qty of nodes so disabling tabs may not help (as they are still present in the flow & in the editor)

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [26 November 2020 15:03 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/33 "2020-11-26T15:03:11Z")

</div>

> [@zenofmud](#):
>
> tell you right now, no body is going to try to figure out what your flow is doing, it is just too large. (over 25 tabs of flows)

I understand but previous posters asked for it so that what I did.

> [@zenofmud](#):
>
> I would suggest disabling tabs till you isolate the issue

Already went thru and only had one flow enabled at a time and still had delays.

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [26 November 2020 16:04 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/34 "2020-11-26T16:04:49Z")

</div>

> [@Steve-Mcl](#):
>
> so i suspect a lesser machine would struggle.

I'm running it on an RPi 4 8Gb with a 128 Gb SSD.

I have only been using Node Red for a few months and have done my best to avoid Function nodes when I can just because of my ignorance. I have another RPi 4 4Gb available so I will see if it helps to split in half before trying multiple instances on same machine. That seems like an easier change.

When 1st posted, I was hopeful that there was a simple solution but practical enough that the problem would probably be difficult to diagnose thru a community website thread.

@Steve-Mcl @Nodi.Rubrum thank you for going above and beyond and cross your fingers for me please.

---

<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:** [26 November 2020 17:21 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/35 "2020-11-26T17:21:31Z")

</div>

If you stop node red then start in safe mode by using the command  
`node-red --safe`  
then that will start the editor without starting the flows. If it is still slow then you know it is probably just the complexity that is the problem, and not something to do with running the flows.

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [26 November 2020 17:40 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/36 "2020-11-26T17:40:39Z")

</div>

I hadn't tried that yet but I just did it and still have same slowdown.

---

<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:** [26 November 2020 17:58 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/37 "2020-11-26T17:58:14Z")

</div>

OK, that is pretty conclusive I think. Are you running the browser on the Pi? If so is that necessary or could you run it on a PC on the network for editing?

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [26 November 2020 19:55 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/38 "2020-11-26T19:55:38Z")

</div>

No I am using a desktop on same home network.

---

<div class="post-metadata">

**Author:** ![stephenn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stephenn/32/66644_2.png) [@stephenn](https://discourse.nodered.org/u/stephenn)\
**Post date:** [26 November 2020 21:46 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/39 "2020-11-26T21:46:49Z")

</div>

Ok i installed NR on my Windows Desktop (Intel i7 3770 CPU @ 3.40 Ghz) and started deleting tabs. I got all the way down to 2 tabs and was still seeing slowness. This is down to only 2 flows, PINGER & GOOD NIGHT/GOOD MORNING. If I delete anything on PINGER, it's instant. If I try to delete 10-20 nodes on GOOD NIGHT/GOOD MORNING, it's 15-20 seconds.

Now that it's down to such a smaller size, it should be easier to troubleshoot. Anyone willing to take a look? This one is tiny compared to 1st. 😃

I did not delete any pallets but if a pallet doesn't have any working nodes, could it have an affect?

---

<div class="post-metadata">

**Author:** ![hotNipi](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hotnipi/32/383_2.png) [@hotNipi](https://discourse.nodered.org/u/hotNipi)\
**Post date:** [26 November 2020 22:21 UTC](https://discourse.nodered.org/t/slow-gui-browser/34328/40 "2020-11-26T22:21:07Z")

</div>

Try to look at the configuration nodes. I cant say what can produce this, but seems you have about mile long list of spacer nodes. Are they all used? I tried to delete them by selecting all but that was too much for my pretty old laptop.

[Previous page](https://discourse.nodered.org/t/slow-gui-browser/34328.md?page=1)

[Next page](https://discourse.nodered.org/t/slow-gui-browser/34328.md?page=3)
