将文件输入Xpath的最佳方法

时间:2012-08-22 05:34:25

标签: java xpath

我正在使用Xpath来处理红色XML文件。文件大小未知(介于700Kb - 2Mb之间),每秒必须读取大约100个文件。所以我想快速地从Xpath加载和读取。

我尝试使用java nio文件通道和内存映射文件,但很难用于Xpath。 那么有人可以说出办法吗?

3 个答案:

答案 0 :(得分:1)

很大程度上取决于XPath表达式的作用。这里有四个成本:读取文件的基本I / O,XML解析,树构建和XPath评估。 (加上可能的第五个,产生输出,但你没有提到输出可能是什么。)从你的描述中我们无法知道哪个因素占主导地位。性能改进的第一步始终是测量,我的第一步是尝试测量这四个因素的贡献。

如果您使用的是具有多个处理器的环境(谁不是?),那么并行执行就有意义了。如果你可以使用Saxon-EE中的collection()函数组织处理,你可以“免费”获得这个。

答案 1 :(得分:0)

如果我是你,我可能会在这种情况下删除Java,不是因为你不能在Java中这样做,而是因为使用了一些bash脚本(如果你在Unix上) )会更快,至少这是我处理大量文件的经验告诉我的。

在* nix上,您可以使用名为 xpath 的实用程序。

由于您正在进行大量的I / O操作,因此拥有一个像样的SSD磁盘可以提供更多帮助,然后在单独的线程中进行操作。您仍然需要使用多个线程,但每个CPU不超过一个。

答案 2 :(得分:-1)

如果你想要性能,我会简单地删除XPath并使用SAX解析器来读取文件。您可以搜索Stackoverflow for SAX vs XPath vs DOM类问题以获取更多详细信息。这是一个Is XPath much more efficient as compared to DOM and SAX?