【问题标题】:What's the right test case to find which method call is faster between execute and getElementsByTagName?在执行和 getElementsByTagName 之间找到哪个方法调用更快的正确测试用例是什么?
【发布时间】:2010-08-04 09:35:17
【问题描述】:

找出XPathExpression.execute("child::<em>")</em>Element.getElementsByTagName("")之间哪个方法调用更快的正确测试用例是什么?

通过 DOM 搜索:

NodeList nl = ((Element)this.currentNode).getElementsByTagName("*");

或通过 XPath:

public static final <T> T xpath(QName qType, Node n, String exp) {
    try {
        XPathExpression expr = xpath.compile(exp);
        T result = (T) expr.evaluate(n, qType);
        return result;
    } catch (XPathExpressionException e) {
        e.printStackTrace();
    }
    return null;
}

附言

我放代码也是为了问我可以选择哪些改进来增强 XPath 编译, 例如:将XPathExpression expr 移出方法上下文并缓存具有相似xpath 表达式的exp 实例?

【问题讨论】:

    标签: java xml xpath


    【解决方案1】:

    正确的测试用例是构建您的应用程序的两个版本,其中一个使用每个替代方案,但其他方面相同,并在您试图提高性能的典型情况下分析它们 .

    任何其他测试都可能具有误导性,因为它没有衡量您真正关心的内容,即应用程序性能。

    或者,如果您不是从自上而下的应用程序性能的角度来看待这一点,那么您应该过早地停止优化,而只需立即编写最易于理解的代码(并在可以的情况下进行优化测量这段代码让你的应用程序/库运行缓慢)。

    【讨论】:

      猜你喜欢
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多