VSW performance tips?
I am building my new VSW app and it is a few seconds slower to load than my GVH viewer. I'm wondering if there are any tips for improving the load time. There are a lot of differences, so it's hard to pin down a culprit. Similar number of layers (@50) but all the VSW layers are hosted feature layers on AGOL, while the GVH uses mostly locally hosted REST services from ArcGIS Server 10.9.1. I've looked at the Chrome developer tools network tab and it seems like different sets of layers load slowly each time I run it. Most of them are not visible at the initial scale. The World Geocoder service loads slowly even though I'm not using it. (Can I just remove it from Services?)
Here is a link to the application.
Any insight would be appreciated.
-
Hey Heather Widlund
Thanks for reaching out and sharing your app. I took a brief look, there does seem to be quite a few requests - ~800 on first load!
I tried to open your app in designer, it looks like there is an item that is not shared (5000f2e4744e482b870b1aa8c8a88692) that is not shared so that prevents me from taking a peek. Could you remove/share that item, please?
- in terms of tips - here are a few from-the-hip ideas and approaches I like to use in my own apps:
I see you have a layer preset. I would suggest reducing the number of layers in that, you could reduce requests on load. - Additionally, changing the initial extent of the web map so you are loading to a smaller area and needing to draw fewer things may help.
- I see you have a few feature services - it may be helpful to reduce the number of feature services where possible, as they can be larger in terms of data than map services.
Another thing to keep in mind is this is all Esri data schema, so Esri's best practices for web maps apply here. I'd suggest this video in particular as a good reference: https://mediaspace.esri.com/media/t/1_b2480xwp
0 - in terms of tips - here are a few from-the-hip ideas and approaches I like to use in my own apps:
-
Thank you, @... . It looks like that item is the VSS config, which I shared from AGOL after clicking on the link in your post.
I will try eliminating one of the layer presets, as all it does is turn on the initial layers again.
As for zooming in, only about 3 layers are visible at that scale - does it not matter if they are visible? I know the parcel layer is large, but the app seems to have longer load times for non-visible layers.
I'm confused about the feature/map service distinction, as all my layers should be hosted feature layers on AGOL.
Thanks for the video link - I'll check that out.
1 -
I've removed one of the layer presets, optimized most of my layers in the AGOL settings, increased the CDN cache time on several layers, but it's not a whole lot faster. I also tried a vector tile layer of my parcels at smaller scales. None of this resulted in much change on a “load from scratch”. Reloading is always faster but I don't notice a difference from the changes I made here either. Why is it such a pig?
0 -
@... Are you able to open the app in designer now that I've shared that item?
0 -
Bump as we are also struggling with performance, any info/tips are welcome
0 -
Same…and my ‘higher ups’ have actually made me unretire my essentials app because of a few squeaky wheels…//facepalm//
Even though it could break tomorrow…
0 -
I still haven't deployed my app because of this and the missing EagleView integration. Would appreciate any insight on load times…
0 -
Hi Heather Widlund apologies for the delay. Taking a second look now, I was able to create a copy of your VSW dev app and look at configuration.
The first area I typically look at is the web map. I noted the web map you use is this one: All layers web map which contains many feature layers - enough that I was not able to easily find a specific count of them.
In my experience, when publishing a web map with many layers for use in VertiGIS Studio Web (VSW) or other apps built on the ArcGIS web map specification (ArGIS Experience Builder, etc), there are a few approaches I try to keep in mind. The following is a from-the-hip summary of my own to optimize performance and user experience specific to the web map schema.
1. Use vector tile layers where possible
- Convert feature layers to vector tile layers for faster rendering, especially for layers with many features
- Keep in mind vector tile layers don't support pop-ups, so use them for display only
2. Organize layers into group layers
- Group related layers together to keep the layer list organized and manageable
3. Set scale dependency
- Set min/max scales on layers so they only draw at appropriate zoom levels
- Prevents unnecessary data from loading when zoomed out
- See Set scale ranges for feature layers
4. Simplify layer styling
- Complex symbols with multiple layers and transparency can slow down rendering
- Simplify symbols and use fewer symbol layers where possible
5. Consider multiple focused apps if needed
- For very complex maps, consider breaking layers into multiple focused apps - this reduces overall complexity.
- I know this is typically a point of intense discussion: this philosophy of many apps vs the “kitchen sink” app requires a careful approach when it comes to data architecture and user adoption.
Remember, these optimizations apply to the underlying ArcGIS web map schema that VertiGIS Studio and other app builders depend on. By applying these tips, you can optimize a web map with many layers to perform well in VSW and deliver a responsive user experience.
In terms of documentation, I have been on the lookout for specific material from Esri that focuses on web map performance though have not seen any. I typically look at the ArcGIS Architecture Center though have not seen specific material on there that would support all of this.
0 -
Erik Kuipers I would suggest bringing that specific EagleView / Pictometry obstacle up with your Account Manager, as they are best equipped to discuss this!
0
Please sign in to leave a comment.
Comments
9 comments