关于 Web 应用程序的性能提示
Web 应用程序的性能涉及两个方面:应用程序对用户的响应速度和应用程序可以容纳的用户数量。在考虑如何改善 ArcGIS Server Web 应用程序的性能时,您可能最先想到添加或更新硬件。但是,也可以通过调整应用程序、地图或服务器中的设置来改善 Web 应用程序的性能。
设计地图以获得最佳性能
设计 Web 地图不同于设计纸质地图,甚至与设计桌面应用程序(如 ArcMap)中常用的地图也不相同。如果您有一个在 ArcMap 中常用的地图文档,则您可能希望为此地图保存一个副本,而不是直接将此地图发布到 ArcGIS Server。使用此副本,可针对 Web 查看执行某些特殊的优化。
那么,在 Web 上查看的地图有何不同呢?要使 Web 上的地图具有最佳性能,建议先使用 ArcMap 中的“地图服务发布”工具条对地图文档进行检查。在解决所有“错误”并尽可能解决更多的“警告”后,再使用此工具条发布地图。这种方式是以地图服务定义(.msd 或 MSD)文件作为服务的基础,以这种方式发布的服务将获得最快的绘制速度。
无论地图服务是否基于 MSD,您都要考虑对其进行缓存以获得较好的性能。缓存地图就意味着您将创建并存储一组预渲染的影像,这样应用程序就可以快速进行访问,而无需每次都对地图的绘制过程进行等待。对地图进行缓存时,您要确保在所有地图缓存比例下您所设计的地图的显示效果都是良好的。有关执行此操作的方法,请参阅规划地图缓存。
缓存地图服务
缓存的地图服务将分发预绘制的地图切片,而不是动态绘制地图影像。缓存的服务不仅可以改善地图的显示速度,还大幅增加了服务器所能容纳的用户数量。对于面向公众的 Web 应用程序,应始终对底图服务进行缓存,并且可以尝试对所有适合进行缓存的业务型叠加服务进行缓存。
评估构建地图缓存所使用的影像格式
所选的影像格式会影响缓存的性能、显示效果以及占用的磁盘空间大小。PNG 8 适用于许多基于 MXD 的叠加服务,而 PNG 32 则比较适用于基于 MSD 的叠加服务。对于底图,JPEG 通常是最好的选择,尤其是在地图具有许多颜色变化的情况下。有关每种影像格式的详细信息,请参阅可用的地图缓存属性。
避免以 PNG 24 格式缓存地图服务
Internet Explorer 6 在显示 PNG 24 影像的透明度方面具有局限性。按照以下步骤操作可避免这种情况:
- 如果必须使用 Internet Explorer 6,则以 PNG 8、PNG 32 或 JPEG 格式缓存地图服务。
- 使用 Internet Explorer 6 以外的其他浏览器来查看以 PNG 24 格式缓存的叠加地图服务。
尽可能使用 ArcGIS Server Internet 连接
使用 ArcGIS Server Internet 连接方式连接到服务器可更加有效地使用服务器上下文请求。ArcGIS Server 本地连接应仅在应用程序需要更改服务的状态时使用,包括用 Web ADF 编辑数据。
删除不必要的 Web 控件
您在 ArcGIS Server 管理器或 IDE 中看到的默认 Web 制图应用程序包括 TableOfContents、OverviewMap 和 Scalebar 等 Web 控件。在与应用程序进行交互时,这些控件将请求新的影像以及更新的状态信息。将不常使用的控件从应用程序中删除有助于改善应用程序的性能及系统的可伸缩性。
部署到生产质量 Web 服务器
为实现最佳性能,建议您将 Web 应用程序以及 REST 和 Web 服务处理程序部署到生产质量 Web 服务器。由 ArcGIS Server 在内部使用的 Web 服务器不计划用于生产环境。有关所支持的服务器的完整列表,请参阅“系统要求”。较为流行的服务器有 IBM WebSphere、BEA Weblogic,等等。
此外,我们还建议您使用 -Xms 和 -Xmx JVM 标记为 Web 服务器的 JVM 配置适合的堆大小。这会大大增强 Web 应用程序的可扩展性。例如,从初始堆大小 256 MB 开始,然后使用 JVM 选项 -Xms256m–-Xmx1024m 增长到最大值 1 GB 通常便已足够。有关如何配置堆大小的详细信息,请参阅您自己的 Web 服务器的文档。
避免不必要的大型查询
默认情况下,ArcGIS Server 地图服务将查询返回的记录数限制为 1,000 条。采用默认值或减小该值可使查询获得最佳性能。通过编辑地图服务配置文件中的 MaxRecordCount 属性可更改允许的结果记录的条数。
增大默认值时务必要谨慎。如果查询返回的记录数超过 2,000 条,则软件需要在系统 TEMP 目录中创建临时工作空间来管理结果记录。这会导致性能下降。
使用本地路径
与使用网络路径或通用命名约定 (UNC) 路径相比,使用源地图和数据的本地路径通常会获得更好的性能。如果您使用本地路径并且部署中包含多台服务器对象容器 (SOC) 计算机,则需使用相同的路径将数据复制到每台计算机上。
有关如何确定是使用中央 ArcSDE 服务器还是本地文件地理数据库的帮助信息,请参阅 ArcGIS Server 数据存储注意事项。