Java Groovy脚本性能包含vs匹配项
我是groovy语言的新手。我正在使用groovy代码检查来自http url的响应是否有效。从性能角度来看,通常建议使用-contains()或matches(),这将允许我验证是否得到了正确的响应。在Java中Java Groovy脚本性能包含vs匹配项,java,groovy,Java,Groovy,我是groovy语言的新手。我正在使用groovy代码检查来自http url的响应是否有效。从性能角度来看,通常建议使用-contains()或matches(),这将允许我验证是否得到了正确的响应。在Java中contains()或中,Groovy的操作符在纯字符串的基础上检查精确匹配,基本上是-1!=str.indexOf('aaa') 另一方面,java中的matches()或groovy中的==和=引入了正则模式匹配开销,速度稍慢。这是您为regex的功能和灵活性所付出的代价 回到您的
contains()
或中,Groovy的操作符在纯字符串的基础上检查精确匹配,基本上是-1!=str.indexOf('aaa')
另一方面,java中的matches()
或groovy中的==
和=
引入了正则模式匹配开销,速度稍慢。这是您为regex的功能和灵活性所付出的代价
回到您的用例,我认为matches()
优于contains()
的性能成本是可以忽略的,因为http请求执行所需的时间要长得多
在这种情况下,我会选择更具可读性和灵活性的解决方案,这将是一种正则表达式方法。另一方面,如果你真的想要精确匹配,你应该坚持使用contains
除了上面提到的,如果您真的想要最后一次性能下降,您应该自己运行这两种方法的负载测试。可能没关系,您正在发出一个http请求,这将是您所做任何事情所花费的大部分时间