我打算在VTD中使用BufferReuse功能。 POC是否按预期工作。但我有一个基本的设计问题。这是我的问题陈述: 我的应用程序中有近1000个XML文件,它们将经常加载和解析。像〜(10-20)次一秒。 1000个XML文件的范围可以从<1KB - ~1MB。因此,为了优化代码,我想到了使用BufferReuse。
我的问题是:代码内部是否具有最大限度的XML数量或者由BufferReuse功能处理的XML的集合大小?它是否会加载服务器太多,因为在最坏的情况下,我将有1000 MB(1000个文件* 1MB)的XML?它存储这些解析对象的位置?我计划实现一个缓存层,它将为每个xmls存储VTDNavigator(具有可以缓存的超时和最大大小)。如果我实现bufferReuse,它实际上会对我做同样的事情还是有什么不同呢?
此代码最终将部署在具有非常好规格的非常强大的服务器中。
答案 0 :(得分:2)
通常有以下方法可以使用VTD-XML优化性能:
选项1 2 3和4通常会逐步提高性能。选项5和6通过从根本上改变XML数据的生成和使用方式来实现范式转换,并为您提供超过现有处理框架和方法的潜在巨大性能改进。首先,您可以很容易地发现xpath评估的结果也可以与VTD索引一起保持,以实际绕过XPath评估。有很多方法可以改进你的应用程序,我会把它留给你的想象力。
答案 1 :(得分:1)
如果应用程序是实时的,需要立即解析XML,那么第5点不是一个选项吗?
对于第5点,您能详细说明如何使用传入字段中的字段值替换模板XML吗?
感谢。