This object is in archive! 

On the performance of the Control Center

SaintNick shared this question 6 years ago
Need Answer

On my Dell Vostro laptop with an Intel Mobile Core 2 Duo T5870 @2.00GHz with 3GB, which admittedly is a bit aged, I find the perormance of the Control Center extremely sluggish. So I looked into it.

These are my findings:


Taking one of slowest operations of all, saving the "Edit thermostat" dialogue for a thermostat with 1 input, 1 output and 4 periods. This takes approx. 25 sec before the interface is ready.


Below is screenshot of a zoom into part of a Chrome F12 CPU profile (Flame view) of all this time.

To the left you can see where a request was sent and then 1,5s idle while waiting for the response. Then at 12.4s you see the handling of the response which is very CPU intensive and goes on for many seconds.


NjVEL


All this is thousands upon thousands of event handler stacks being executed by the Sencha Ext.js library.

My conclusion is that either this library is a suboptimal, or it is not being used well by Zipato.


Either way, in its current state I find it too sluggish to consider paying money for.

In the past I have programmed Javascript for 12 years, from 1996 to 2008. I have built many Ajax applications and libraries, years before the term Ajax was coined, and this sort of performance for such a simple page is totally unnecessary.


What kind of timings are other people getting on their hardware?

Comments (4)

photo
1

This would be a good place to start with performance issues:


http://www.sencha.com/blog/top-10-ext-js-development-practices-to-avoid

photo
1

Thanks! How long time do you have from login to you see all widgets on dashboard?

For me 10 seconds

photo
1

Same for me: +- 10 seconds with chrome on macbook pro

photo
1

For me also some 10 seconds.

But the one-time loading time of the dashboard is not (yet) the biggest problem. It's all the operations you do in the dashboard, like opening the devices in the general widget, or saving saving the "Edit thermostat" dialogue. The latency between click and result is too long, unnecessarily long, in my opinion. The interface is not nice and fast, or snappy as we say in English.


latency due to http communication with the cloud servers, or with the Zipabox (does that happen or is it always via the cloud server?) is not the issue and is "necessary". But all the time in the Javascript is avoidable.

For a comparison, make a simple html "control center" html-page with no css or Ext.js library, just a hardcoded button to send a hardcoded post of "Edit thermostat" dialogue static data to the server/Zipabox. That would give the fastest possible baseline performance; the only latency would be http communication and server/zipabox processing.

Compare that with the same operation in the real control center. Any difference is Javascript/Ext.js overhead, which you want to keep at an reasonable minimum.


That is also what the Chrome F12 flame graph shows so nicely.

Firefox and IE have similar F12 tools for profiling.