java - Saxon XQuery编译器的优化

标签 java saxon

我发现 saxon 9.9.1-4 中 XQueryCompiler 的行为非常奇怪。当我第一次运行 XQuery 时,无论 XQuery 复杂性如何,编译都会花费大量时间(400 毫秒)——例如 math:pi() 进行测试。但是,当我通过编译某些内容(例如,compiler.compile("1"))来“初始化”XQuery 编译器时,其他查询的编译速度很快 - 400 毫秒的等待不再存在。

确实很奇怪,为什么会这样呢?如果这种行为是有意为之,为什么工厂方法 Processor.newXQueryCompiler() 中没有这样的初始化?

我已经测试了快速编译标志,它似乎对这 400 毫秒的延迟没有任何影响。

最佳答案

我的猜测是,您正在测量加载 Java VM 和 Saxon 软件的成本,而不是编译实际查询的成本。在加载所有类、对常用方法进行 JIT 编译等之前,Java 可能需要相当长的时间来“预热”。如果您编译相同的查询 20 次,您可以很容易地观察到这种效果,随着 Java 的优化,所花费的时间会慢慢缩短。

关于java - Saxon XQuery编译器的优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996314/

相关文章:

java - Java 二进制数相加

java - Excel、Java Apache API 中的公式未更新

java - 将文档作为参数传递给 xslt

java - Java 中 xsl :include, xsl:import 的强制解析

xml - BaseX 8.2 中带有元素节点测试的 XQuery 文档节点测试会在根元素之前出现注释时抛出异常。为什么?

java - hashcode什么时候计算

java - 如何从数据库获取 BLOB 并将其像图像一样显示

java - 对字符串的特定部分进行二分查找

java - Saxon 有快速编译模式吗?

xslt-2.0 - SaxonApiException : The context item for axis step ./客户端不存在