arcgis - 在旧硬件上使用 ArcGIS API for JS 构建的 Web 应用程序性能不佳

标签 arcgis esri arcgis-js-api esri-maps esri-arc-engine

问题

我第一次使用 JS API 开发 Web 应用程序。在测试网站的性能时,我在相对较新的硬件(例如我的 Surface Laptop 3 8GB RAM、Chrome v88)上使用得非常流畅,但在较旧的硬件(MacBook Pro)上使用速度极其缓慢13"2016 8GB RAM、MacBook Pro 15"2014 8GB RAM、Dell Inspiron 15 5000 2017 8GB RAM,全部运行 Chrome v88)。

链接到正在开发的网络应用程序:

https://dmarkbreiter.github.io/lau-interactive/

疑难解答

考虑到这些“较旧”的硬件配置并不是很旧,迟缓的性能令人不安。起初,我认为可能是 basemap 或要素服务拖慢了应用程序的速度,但是当我在 API 的开发人员页面上测试示例应用程序时,我的性能即使不是更慢,也同样如此。

下面链接的示例应用:

https://developers.arcgis.com/javascript/latest/sample-code/featurelayer-query/ https://esri.github.io/dot-density-legend/ https://livingatlas.arcgis.com/sea-ice/

上述应用程序在我的 Surface Laptop 3 上运行得非常好,但在其他经过测试的硬件配置上则完全表现不佳。

更新 查看我自己的应用程序,我发现两个要素服务(LAU_Localities_ViewSoCal_Counties)在页面加载时有多个 GET 请求。我已在下面包含其中一个的查询字符串参数:

f: pbf
geometry: {"spatialReference":{"latestWkid":3857,"wkid":102100},"xmin":-13149614.849954996,"ymin":3757032.814274987,"xmax":-12993071.816026995,"ymax":3913575.8482029866}
maxRecordCountFactor: 3
resultOffset: 0
resultRecordCount: 8000
where: 1=1
orderByFields: OBJECTID ASC
outFields: OBJECTID
outSR: 102100
quantizationParameters: {"extent":{"spatialReference":{"latestWkid":3857,"wkid":102100},"xmin":-13149614.849954996,"ymin":3757032.814274987,"xmax":-12993071.816026995,"ymax":3913575.8482029866},"mode":"view","originPosition":"upperLeft","tolerance":305.74811314062526}
resultType: tile
spatialRel: esriSpatialRelIntersects
geometryType: esriGeometryEnvelope
inSR: 102100

首先让我感到奇怪的是 maxRecordCountFactor 为 3。

问题

这是使用 API 构建的 Web 应用程序的预期行为/性能吗?

如果没有,我怎样才能使我的应用程序在各种硬件配置上具有更高的性能?在这个硬件上,即使是围绕 basemap 平移也会感觉和看起来不稳定。这是一个已知问题吗?如果是,是否有任何解决方法来确保各种硬件上的可用性能?

最佳答案

问题似乎出在 Esri 的 WebGl 引擎上,它无法与计算机的图形驱动程序配合使用,基于 Chrome 的浏览器上的以下控制台警告证明了这一点:

[esri.views.2d.engine.webgl.WebGLDriverTest] 检测到您的图形驱动程序存在问题。您的驱动程序似乎不支持采样器精度说明符,这可能会因数值不稳定而导致渲染问题。我们建议确保您的驱动程序已更新到最新版本。应用 lowp 采样器解决方法。 [0.0.0.0]

当问题中链接的网络应用程序在 FireFox 86 上进行测试时,它们运行得非常好,并且没有出现上述警告。

关于arcgis - 在旧硬件上使用 ArcGIS API for JS 构建的 Web 应用程序性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66483229/

相关文章:

python - 启动 python 子进程有不同的行为,具体取决于启动器

javascript - 如何检测 map 何时移动?

javascript - arcgis featureLayer 的替代品?

javascript - basemap 引用图层(文本)忽略选择更改时的不透明度?

C# 你打算调用方法吗

c# - 查找 Lat Long 位置是否在 esri shapefile 中的形状中

javascript - 查找网站中所有已加载的文件以创建 ApplicationCache list

javascript - 更改要素图层中多边形的顺序? (arcgis js 4.xx)

javascript - 导入 ECMAScript 6 时为 "Uncaught SyntaxError: Cannot use import statement outside a module"

c# - 没有配置的 ADO.NET Oracle.ManagedDataAccess.Client 的 Entity Framework 提供程序