在 ArcGlobe 中缓存
缓存过程对符号化的数据建立索引,并将其组织为各个切片和细节层次。此方法是 ArcGlobe 的组成部分,允许显示超大型数据集。ArcScene 不使用缓存,因而更适合于比较小的、局部的数据集。
对于大多数用户而言,系统可自动处理缓存,但在某些情况下,直接管理缓存设置可能会非常有用。例如,内存缓存设置专用于当前 ArcGlobe 文档。如果用户需要定期与缓存设置和存储的磁盘缓存进行交互,建议深入了解一下 ArcGlobe 中的缓存。
ArcGlobe 所使用的缓存类型有两种:内存缓存和磁盘缓存。
内存缓存
内存缓存指的是分配可供 ArcGlobe 使用的物理内存 (RAM) 大小。要获得最佳性能,可设置对每个所使用的数据类型所分配的内存大小。例如,当显示包含许多大数据量 DEM 图层的文档时,可以为高程图层分配更多的物理内存。
磁盘缓存
磁盘缓存为 ArcGlobe 文档中的每个图层创建一组临时文件或缓存。图层的磁盘缓存名称是其显示名称与全局唯一标识符 (GUID) 的组合。请务必注意,缓存是为图层生成的,而不是为数据源生成的。以红线显示的线要素类需要使用与以绿线显示的相同线要素类不同的磁盘缓存。有关管理磁盘缓存(包含设置图层缓存的位置以及删除缓存的时间)的详细信息,请参阅 ArcGlobe 中的缓存管理。
导航数据时,所访问区域的显示画面将缓存到磁盘。这样,下次在访问该位置时,将提供快速的显示性能。默认情况下,使用按需缓存方式生成缓存。
还可完整缓存图层。这将对所有细节层次的数据的全图范围生成缓存。这意味着无论在何位置或采用多大比例,都将生成视图的缓存,并会尽快渲染图层。
然而,大多数情况下,最好部分缓存图层。这样,将缓存数据的全图范围,但仅针对指定的细节层次进行缓存。通过仅缓存相应的显示比例,可在很大程度上降低缓存的大小和生成时间,同时会提高性能。
另一种性能技术是缓存合并。它可以为图层组创建缓存,以减少储存并显示 ArcGlobe 文档的磁盘缓存的数量。
建立并合并磁盘缓存后,您可能需要将其移动到新的位置。例如,您可能想要将 ArcGlobe 文档部署在 ArcGIS Globe Server 上来消耗内存,或者只是希望在当前默认缓存位置的磁盘空间上低性能运行即可。当磁盘缓存是一组高度结构化的文件夹时,可在不同位置间完好地进行移动。
自动磁盘缓存行为
图层缓存可以保留在任意可访问的目录下,但为了保持一致性,通常推荐将其保留在相同的位置。默认设置将所有缓存放置在相同的本地目录下。ArcGlobe 的默认缓存设置直接放置在当前用户的 Application Data\ESRI\Local Caches 文件夹下,名为 GlobeCache。
图层缓存的生命周期遵守以下一系列规则:
缓存创建
当新图层添加到 ArcGlobe 时,将自动创建磁盘缓存。
如果从另一个 ArcGlobe 会话复制图层或将图层作为保存的 ArcGlobe 图层文件进行添加,则此图层的缓存已存在,不创建新的缓存。这样,您就可以为关键图层创建完整或部分缓存,并在许多 ArcGlobe 文档中重复使用这些缓存。
缓存失效
当图层的显示画面中发生更改时,磁盘缓存将自动失效。例如,更改符号颜色或启用标注将使图层缓存失效。更改图层的可见性不会使缓存失效。可右键单击图层再单击刷新以手动方式使图层的整个缓存失效。要使图层的部分缓存失效,可以在高级缓存管理 对话框中指定地理范围,该对话框可以通过图层属性 对话框中缓存选项卡中的高级按钮进行使用。
使尚未保存在 ArcGlobe 文档或图层文件中的图层缓存失效会导致现有缓存为空,然后使用新符号系统再次按需创建。
然而,使已经保存在 ArcGlobe 文档或图层文件中的图层缓存失效,会使原始缓存保持不变,而为更新的符号系统创建新的缓存。这样做是出于两个原因。第一,图层可以在其他文档中使用,并应采用原始符号系统和缓存。第二,如果更改了图层的符号系统,但并未保存而退出了 ArcGlobe,则重新打开文档时,原始缓存仍将存在。这样做的一个不利影响是:随着时间的推移,您可能创建了不再需要的缓存。
缓存删除
当关闭 ArcGlobe 时,会自动删除不需要的缓存。例如,如果将新图层添加至 ArcGlobe 但在未将图层保存到文档或图层文件的情况下退出,则将删除已添加图层的按需缓存。这是因为没有文档或图层文件引用该图层,所以不会使用该缓存。
此规则的例外情况是手动生成的完整或部分缓存。当关闭 ArcGlobe 时,不会删除这些缓存,即使图层未保存到图层文件或 ArcGlobe 文档中。然而,这些缓存实际上也是孤立的,因为引用它们的唯一方式是从缓存目录中添加顶层图层文件。这些孤立的缓存不再引用其源数据,而只是数据显示画面的简单快照。为了简化缓存管理,建议的做法是通过图层文件或 ArcGlobe 文档与所有缓存保持连接。
如果将图层的属性配置为不使用磁盘缓存,则会自动删除图层的现有磁盘缓存。这还可以确保没有将缓存写入磁盘。要将图层设置为不使用磁盘缓存,请转到图层属性 页面中的缓存选项卡,并选中不使用磁盘缓存选项。这样会立即将所有现有磁盘缓存文件移除。如果图层有完整缓存,则在删除缓存前系统会发出警告。
另外,也可以将图层配置为退出 ArcGlobe 时总是删除其缓存。这对动态内容十分有用,例如 ArcIMS 服务中的天气数据,其中的显示画面将定期更改。
关闭应用程序或退出文档时,ArcGlobe 将向您发出是否自动删除或孤立图层缓存的警告。信息“如不保存,某些图层缓存将丢失”将显示在保存更改 对话框中。对于已配置为退出时删除图层缓存的情况,此信息将不显示。
下图中有两个控制缓存删除的选项。应用时,第一个选项将立即删除图层的磁盘缓存,而第二个选项将仅在退出 ArcGlobe 或移除图层后删除磁盘缓存。