span8
span4
如何缓存功能的影响FME工作空间的表现?
这是一个很好的问题。有多种方式该功能缓存会影响工作空间的表现。
注意:有关特性缓存功能的详细信息,请参阅下面的FME工作台文档关于功能检查。
当一个工作区在FME工作台运行与要素缓存选项活跃的特点是高速缓存。缓存是由绿色的图标,这是工作区时正在运行,并且被缓存功能,动画显示。
以上,工作区已运行和在每一步中缓存的数据。
性能的影响:当工作区最初与功能缓存运行性能会受到激活。这是因为它需要时间和系统资源来创建这些缓存和数据填充它们。
然而,意图是,失去了高速缓存数据的时间被超过由时间补偿时再运行一个工作区保存,读缓存的功能,作为源数据,以避免重新运行整个工作区。
在设计和工作区的测试,通常是没有必要重新运行整个翻译。当功能已被缓存,可以用它们作为数据源,忽略那些没有受到编辑之前变压器。
上面,StatisticsCalculator已经在此工作空间编辑。在图标的颜色显示其更改随后的变压器也受到了变化。创建正确的输出,而不是重新运行整个工作区,在AreaCalculator缓存的特征可以被用作数据源。这是通过运行从StatisticsCalculator起工作区来实现的:
性能的影响:由于之前编辑StatisticsCalculator工作区没有需要重新运行,整体性能要快得多。性能的提高直接关系到所跳过的变压器进行的工作。例如,多少时间可以通过缓存地址解析器变压器的结果,以避免对同一个Web服务的后续调用保存。
意图是,在“部分运行”中获得的时间,弥补工作区的初始执行过程中损失的时间。
当一个工作区正在运行,并且数据被缓存,一个特征类型或变压器的每个输出端口被高速缓存。
以上,例如,在这一扩大的书签每台变压器缓存其功能。
然而,设计和工作区的测试过程中,并不需要缓存的所有功能。已经被测试令人满意的部分,将不被进一步编辑,所以不需要做缓存。在这种情况下,可以通过折叠它们所在的书签来防止缓存每个转换器。
现在,在运行工作区时,只缓存折叠书签的输出端口。其中的转换器没有缓存特性。
性能的影响:通过折叠书签来排除工作区的部分,可以减少特性的缓存,从而可以更快地执行,并使用更少的系统资源。
FME中的一些变压器被设计成可以产生多个输出。通常,FME只为连接的输出端口创建输出。
例如,上面的工作空间使用SurfaceModeller transformer将轮廓转换为锡面。因为只连接TINSurface输出端口,所以只创建一个TIN表面。
然而,当功能缓存被激活时,所有的输出端口都被认为是连接的,所有的输出都被创建。
上面,功能缓存导致生成所有输出,即使只有TINSurface连接。
性能的影响:一方面,这是一个有用的特性,允许用户检查不同的结果,而不必连接它们的输出端口。另一方面,这个过程需要更长的时间和更多的系统资源;这不仅是因为缓存了更多的数据,还因为需要进行更多的计算来生成所有不同的输出。
并行处理是一种使用多个进程来提高性能的技术。这通常使用定制的转换器来实现。但是,在激活特性缓存时,不允许在自定义转换器中进行并行处理。
性能的影响:尽管使用“部分运行”特性缓存可以节省时间,但它会损失通过并行处理获得的性能收益。工作空间作者必须平衡每种技术的优点,并选择产生最佳性能的技术。
当涉及的数据量非常大时,缓存带来的性能下降尤其明显。例如,给定多个光栅文件缓存所有的数据会消耗大量的系统资源。因此,在激活缓存之前,请考虑是否确实需要缓存。同时,确保在属性方面进行一般的最佳实践;也就是说,使用AttributeRemover尽可能早地在工作空间中删除多余的属性(如果不需要,就不要读取它们),特别是在不再需要列表属性时删除它们。
另一个建议是只使用一小部分数据来设计和测试一个工作空间,在整个数据集准备投入生产时关闭缓存。
性能的影响:特性缓存背后的思想是通过使用“部分运行”来节省时间和资源。如果最初用于缓存数据的时间和资源大于部分运行节省的时间,那么不应该应用特性缓存。大型数据集可能导致过多的缓存,因此应该尽可能避免。
通过允许工作区的部分运行,特性缓存可以在性能方面带来非常大的好处。然而,在某些情况下,它也会产生负面影响。必须注意避免缓存不必要的数据,必要时使用折叠的书签。这包括具有多个未使用的输出端口的转换器,这可能会在功能缓存模式中生成比预期更多的数据。
©2019安全亚搏在线软件公司|法律