Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Groovy脚本性能包含vs匹配项_Java_Groovy - Fatal编程技术网

Java Groovy脚本性能包含vs匹配项

Java Groovy脚本性能包含vs匹配项,java,groovy,Java,Groovy,我是groovy语言的新手。我正在使用groovy代码检查来自http url的响应是否有效。从性能角度来看,通常建议使用-contains()或matches(),这将允许我验证是否得到了正确的响应。在Java中contains()或中,Groovy的操作符在纯字符串的基础上检查精确匹配,基本上是-1!=str.indexOf('aaa') 另一方面,java中的matches()或groovy中的==和=引入了正则模式匹配开销,速度稍慢。这是您为regex的功能和灵活性所付出的代价 回到您的

我是groovy语言的新手。我正在使用groovy代码检查来自http url的响应是否有效。从性能角度来看,通常建议使用-contains()或matches(),这将允许我验证是否得到了正确的响应。

在Java中
contains()
中,Groovy的操作符在纯字符串的基础上检查精确匹配,基本上是
-1!=str.indexOf('aaa')

另一方面,java中的
matches()
或groovy中的
==
=
引入了正则模式匹配开销,速度稍慢。这是您为regex的功能和灵活性所付出的代价

回到您的用例,我认为
matches()
优于
contains()
的性能成本是可以忽略的,因为http请求执行所需的时间要长得多

在这种情况下,我会选择更具可读性和灵活性的解决方案,这将是一种正则表达式方法。另一方面,如果你真的想要精确匹配,你应该坚持使用
contains


除了上面提到的,如果您真的想要最后一次性能下降,您应该自己运行这两种方法的负载测试。

可能没关系,您正在发出一个http请求,这将是您所做任何事情所花费的大部分时间