Navigation Slow

Hi Folks,

This is my first use of igntion and Im using this panel pc advantech.com/products/TPC-1 … A06E4.aspx

My program is only small, maybe 20 screens. They all have a png as a background but that is resized before putting into ignition. On the bottom of the each screen there is a navigation template using (presized) pngs and using the swapTo function.

Some times the navigation doesnt work and you have to click to another screen before trying again, sometimes its slow to open. I notice when i first start the project every screen takes about 5 secs to open (rotating blue circle at top of screen) as if its caching something. Once its open it is faster but still very unresposnive at times.

All of the other buttons and input boxes work fine.

Im on the latest ignition build, running java 7 and 6. Win 7 64bit and I have set the full 4gb ram available to igintion in the conf file.

Any ideas as even my old Siemens panels were faster ?

We noticed same issue with any of the fanless panel mount PCs, Advantech’s, Phoenix Contact.
You will notice CPU usage will spike to 100% when any screen with background graphics is loaded.

We had to pull these panel mount PCs from a job and place a desktop PC with Hope Industrial panel mount Monitor due to slow response time in loading images other than the built in Ignition graphics.
Customer complained about the 5 - 10 seconds loading of screens.

Thanks for replying :slight_smile:

You would have thought a dual core processor and 4gb of ram all feeding from an SSD would be able to handle a little PNG image, especially when it is already resized for the screen?

The only other software on the PC is Mysql and my UPS software.

I will try removing the background and see if that helps. I have just ordered 5 more panels so fingers crossed it can be sorted!!

We can probably dial in the performance somewhat. I doubt removing those background processes will affect the screen loading performance.

One thing to make sure of is that you’re using the mousePressed event for your navigation code, not the mouseClicked or actionPerformed events. This should help the “sometimes the click doesn’t happen” issue with touchscreens.

You say the images are pre-sized: is the image component itself set to stretch to bounds or is stretch turned off? About how many components are on each window? Are you using templates with UDT bindings?

Thanks Carl,

Im not near the gateway/client at the moment so cant check for definite but Im sure Im using the mouse pressed option as navigation and swap to. I did change it to close and open which worked better but if the user pressed on the same nav icon as to what page they were on the page shuts down, leaving a blank screen.

I resized the background png to the screen size Im using, there is also a logo as another png on there. I basically have a template as a full size background image and company logo, all the correct size. That is on every page with my navigation template overlaid.

The background image is set anchored to the top left and the company logo to the top right. The nav is set anchored to the bottom and centre. One thing I did notice is that when I open a page the background image seems to expand then shrink to normal size, only for a split second. Some screen contain quite a few jpegs where some contain only rectangle boxes with text and input boxes.

I will have to check to see if the image is set to stretch tomorrow, not sure what you mean by UDT bindings. I never set any bindings to the templates if thats of any help.

Once the page has loaded up for the first time when restarting ignition, the swapTo is faster except for the occasional non responsive press. Does ignition or Java cache the pages as opening the page again is faster.

Using a desktop PC as a client the performance is fault less, instant. Why not on the panel pc ? How much processing power does it need ?

Setup the perfmon to capture statistics from the various IO points. Physical Disk(I’d be interested in queue length), CPU, Memory, and NIC. Then start the app and note the times when you open the windows and see what spikes?

Dravik’s advice is very good. If the performance is good on a “normal” pc but slow on this one then there might be something on the pc that needs some tuning. The specs look fine to me, but maybe the HD access is really slow or something?

Thanks Guys,

I will set up perfmon tomorrow and have a look. I will report back.

The hard drive in the panel is a solid state hard drive, cant remember if its 64 or 128gb

Sheesh solid state hard drive? That thing should be fast! Curious what’s slowing it down…

Every panel mount PC with a solid state drive we tested with Ignition always had a slow screen loading time on first navigation to a new screen when that screen had background graphics ,5 - 10 seconds. Screens with labels and text loaded fast, withing 1 second. After all screens were loaded once, navigation was faster due to caching.

This became an issue for us on a particular job site, as every shift a new operator would Log Off the previous operator and then Log In with their own User. This would then cause all screens loading slow again, I guess cache is reset.

We have ( had) this issue with 7.2, 3 & 4.

1 Like

Well, SSD doesn’t always mean fast either.
I’ve pulled some c%$^ ones out of fanless pcs :smiley:

I wonder if it isn’t the GFX card(or lack there of), I seem to recall that Swing needs some ‘oomph’ to help it along.

Carl, what rendering pipeline are the clients using by default on a windows os? Direct3d, OpenGl?

[quote=“Dravik”]Well, SSD doesn’t always mean fast either.
I’ve pulled some c%$^ ones out of fanless pcs :smiley:

I wonder if it isn’t the GFX card(or lack there of), I seem to recall that Swing needs some ‘oomph’ to help it along.[/quote]

I think the one fitted is a sandisk extreme.

Well, that would be a sandforce based SSD. Should be quite good then.

We disable the Direct3d rendering pipeline by default because of it’s poor performance with XOR painting, which the designer uses. You can also disable DirectDraw, which sometimes solves issues with some video cards. You can toggle these options under the Config section of the Ignition Gateway, under Gateway Settings > Web Launch Settings

I have similar symptoms that have been mentioned here. But instead of slow initial opening of all screens, it is only slow to initially open the first screen that I choose to navigate to. This happens no matter which screen I select (for ex: from “main” to “maintenance” or from “main” to “user management”, etc.) After this first navigation swap, which takes 20-30sec, all future navigations are quick. Here are some specifics of my setup.
Gateway and Client on same PC.
120GB SSD
8GB RAM
Processor: Intel® Core™ i5-6300U CPU @2.4GHz
Windows 10 x64
Java: jre1.8.0_161

Designer/Project Properties/Client/Launching/Client Memory Initial: 1024, Maximum: 1024
Gateway/Gateway Settings/Web Launch Settings/ Direct3D: Disabled, DirectDraw: Disabled
I have setup PerfMon to run along side a windowed client, and I have monitored the following Counters:
Current Disk Queue Length
Available MBytes
%Committed Bytes In Use
%Processor Time

Current Disk Queue Length
During the 30 seconds of initial slow window loading: no change ~(0.008)

Available MBytes
5.1 GB while client closed, 4.5GB with client opened
During the 30 seconds of initial slow window loading: no perceptible change

%Committed bytes in use
Client Closed: 42%, Client Opened: 55%
During the 30 seconds of initial slow window loading: no perceptible change

%Processor time
While opening client (~3 sec): ~91%
While client idle: ~5%
During the 30 seconds of initial slow window loading: ~35%

Any ideas as to the cause of the slow initial opening?

Are you using some templates across all (or most) of these windows? When a window is opened its serialized form is pulled from the gateway and expanded (deserialized), and if any templates are referenced, they too must be pulled and expanded. When swapping to another window that references templates already in use, those templates don’t have to be deserialized again. And windows that have been cached won’t be deserialized again.
Consider digging into your templates looking for big datasets that have been saved into the project – those are killers.

Yes I do have a few templates on the primary main window. There are 8 instances of one template, then another 6 instances of a different template. But this is the only Main window that uses the templates.

I believe the slowness is primarily upon navigating away from this primary main window. I changed the main window that displays upon startup to a simple page of text entry boxes, and I can navigate quickly between the other 7 main windows. But when I try to navigate to and then away from the template laden primary main window, it takes almost 30 seconds to swap.

I’ll try to change the template approach I have and post what I find. Thanks for getting me in the right direction.

You might just need to allow the client to use more memory to handle that one page.

I redesigned that primary main window to use less templates and the slowness has decreased to less than 2 seconds. In the process of that, about 20 unused svgs were removed, so that might might have helped as well. Thanks!