# \[IGN-5271\]Perspective Styles super slow to save every time

**URL:** <https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [December 8, 2021, 1:55am UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867 "2021-12-08T01:55:46Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 8, 2021, 1:55am UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/1 "2021-12-08T01:55:46Z")

</div>

v8.1.5

For some reason, saving any Perspective Style is taking upwards of 38s to save… Not sure how to diagnose the issue. It affects all designers, local and remote. It doesn’t affect saving Views or seemingly anything else, only Perspective Styles 😕

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 8, 2021, 3:14pm UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/2 "2021-12-08T15:14:00Z")

</div>

A thread dump while it’s happening would be the most useful thing.

The best way to get that requires you to have separately installed a JDK on the machine you’re running the designer on, though; `jstack` isn’t included in our runtime distribution.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 8, 2021, 9:02pm UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/3 "2021-12-08T21:02:46Z")

</div>

Can I get the right dump from a flight recording? I have mission control installed already so that would be easiest if possible

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 8, 2021, 9:13pm UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/4 "2021-12-08T21:13:35Z")

</div>

Yeah, any source of thread dump should do. Just want to see what’s actually happening during that time.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 8, 2021, 9:23pm UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/5 "2021-12-08T21:23:18Z")

</div>

Hmm, I assume I need to get the dump from the designer? Also, I was mistaken, it only affects remote designers i.e. connected to site through VPN. It doesn’t affect a Designer started on the gateway server itself

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 8, 2021, 9:31pm UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/6 "2021-12-08T21:31:06Z")

</div>

I ended up using jstack, captured a few from the remote designer:  
[tdump2.txt](https://forum.inductiveautomation.com/uploads/short-url/bX7pJLZvntEsCrauS3sUYSvUd0o.txt) (67.3 KB)  
[tdump3.txt](https://forum.inductiveautomation.com/uploads/short-url/rkZdd5r854J9RZxKiRcnQk8JF1y.txt) (65.2 KB)  
[tdump4.txt](https://forum.inductiveautomation.com/uploads/short-url/bRyVeGghrzQxbQi9CiQoSkMg0Ex.txt) (65.3 KB)  
[tdump5.txt](https://forum.inductiveautomation.com/uploads/short-url/f8i8saUEpHms20JjtMy9oVkLRfG.txt) (69.5 KB)  
[tdump6.txt](https://forum.inductiveautomation.com/uploads/short-url/dAGTDDtPzK7eQ495lt0zNio4dUF.txt) (65.2 KB)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [December 8, 2021, 9:32pm UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/7 "2021-12-08T21:32:09Z")

</div>

You might need thread dumps from the gateway while it’s slow also.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 8, 2021, 9:36pm UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/8 "2021-12-08T21:36:49Z")

</div>

[tdump\_designer\_1.txt](https://forum.inductiveautomation.com/uploads/short-url/ziXi25Dy5rzT8MRWd16YS2C7LDA.txt) (65.3 KB)  
[tdump\_designer\_2.txt](https://forum.inductiveautomation.com/uploads/short-url/vVGqbb5RZLHnH17ZPGj9o8pHHKO.txt) (65.3 KB)  
[tdump\_server\_1.txt](https://forum.inductiveautomation.com/uploads/short-url/3EW45EbenLCQutcsWMHS5tUJxzH.txt) (302.0 KB)  
[tdump\_server\_2.txt](https://forum.inductiveautomation.com/uploads/short-url/xBTztphvPST8csbAGJWriSZ6S6D.txt) (215.3 KB)

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 8, 2021, 11:59pm UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/9 "2021-12-08T23:59:35Z")

</div>

Does it get substantially slower if you have more views open in the designer?

The designer (local Java Swing) is reaching out to JXBrowser to tell the running design session (local Javascript) that the styles got updated so it can apply them to the page.

I don’t think it should be _that_ slow (or sensitive to network latency) but that’s approximately what’s happening, based on the designer thread dumps.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 9, 2021, 12:09am UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/10 "2021-12-09T00:09:50Z")

</div>

> [@paul-griffith](#):
>
> Does it get substantially slower if you have more views open in the designer?

Interesting, yes it does. When I close all views it's instantaneous, however with:

- 1 view open - 5s
- 2 views open - 8.5s
- 3 views open - 13s

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 9, 2021, 12:11am UTC](https://forum.inductiveautomation.com/t/ign-5271-perspective-styles-super-slow-to-save-every-time/53867/11 "2021-12-09T00:11:18Z")

</div>

Yeah, that’s what I expected. It’s going through each jxbrowser instance (serially) and applying the new styles to them.

I filed a ticket to see if we can push that to a background thread or otherwise handle it differently.
