Select to view content in your preferred language

Client-side StreamLayer perfomance problems and different update behavior in Map/SceneView

205
3
a month ago
EmilAura
Emerging Contributor

Hi,

We're recently switched from FeatureLayers applyEdits to Client-side StreamLayer in our application and have had some performance issues since. The problems seem to be related to the updates triggered by the updateInterval of the StreamLayer. These updates seem to be triggered even thought

  1. The Layer is empty
  2. No messages have been sent to the layer

These updates trigger quite a lot of GPU usage on low end hardware (up to 70-100%) on integreated graphic cards. The result is a constant high GPU usage.

 

We tried mitigating this in the following way

  1. calling layerview.pause() on init  
  2. resume() on the data-received event
  3. pause again once layerView.updating is false

This works fine on Mapview, but Sceneview seem to be stuck in an endless update (update is always true).

 

We also tried calling layer.refresh on data-received. This works on MapView, but the layer is not refreshed in Sceneview. Refresh is called, but it seem to get stuck on _debounceHasDataChanged.

 

We'de idealy like to trigger a debounced update of the layer only when data has actually been received (the data-received event)

 

Attached is two identical stackbliz projects. One with Mapview and one with Sceneview. I've also added a video showing the dev console for both projects, to showcase that the update events aren't triggered in the Sceneview.

MapView 

Sceneview 

Video showcasing perfomance problems on an empty streamlayer. i5, 8BG RAM integrated Intel graphics.

Thank you and best regards,

Emil

0 Kudos
3 Replies
UndralBatsukh
Esri Regular Contributor

Which version of 4.x are you using? 

0 Kudos
EmilAura
Emerging Contributor

We're using 4.31.6

0 Kudos
UndralBatsukh
Esri Regular Contributor
0 Kudos