Perspective built-in Symbol Animations High CPU

Has anyone else had issues with high cpu with Ignition Perspective’s built in animations for faulting on pumps and valves as well as the agitator for tanks? We’ve had to disable these features for our client as, at a minimum, if a screen was up showing one of these animations, the cpu would increase anywhere from 20-30% and slowly keep incrementing based on how many valves/tanks with agitators were on the screen. We have 6 thin clients connected to this server and the majority of screens have tanks with agitators. when we went live with ignition perspective 8.1.0 and still on 8.1.1. the cpu between all of those 6 spiked to 100% and once we got rid of the agitators visibility and changed the css of valve faults the cpu now hovers down around where we expect it at ~20-30% for all 6. We were told they fixed this in v8.1.4 but we upgraded a simulation environment and the issue persists. The first picture is the simulation environment and the live client environment is the second picture.


I was playing around with some things today and ran into this issue. Currently on 8.1.28.

I understand that a well designed system shouldn't have alarm floods, therefore, you shouldn't have views with a bunch of symbols in alarm.

However, if there are a bunch of animations within a view the CPU will spike. To test I put 100 valves in a view and then set them all to a fault state. In my test environment it went from 2% to 25%. It's not just symbols, but anything with animation (for example blinking between colors).

Is there a known bug or issue, or is this just the nature of Perspective?

If the gateway has to do any work for these animations, then it should be no surprise that many clients using them will bog down the gateway. :man_shrugging:

My test was using a single client. I'm actually quite surprised that the loading is that high.

Edit, I should add the high CPU usage is on the client side (not gateway), in my test, Chrome. I created a ticket to see if support can see anything usual.

Ah, something else entirely then.

Support reminded me that you can "dumb" down animations by limiting the steps, for example,

.ia_symbolComponent--failedToOpen.ia_valveSymbolComponent--valve-2-way
{
    animation-timing-function: steps(2,end);
}

A value of 2 is just a simple blink, which is all I really wanted anyways. Playing with this drastically impacted the client CPU usage.

3 Likes