我是 Groovy 语言的新手。我正在使用 groovy 代码来检查 http url 的响应是否有效。从性能角度来看,通常建议使用 - contains() 或 matches(),这将允许我验证是否得到正确的响应。
最佳答案
在 Java 中,Groovy 的 contains()
或 in
运算符检查纯字符串基础上的精确匹配,基本上是 -1 != str 的快捷方式。 indexOf('aaa')
.
另一方面,java中的matches()
或groovy中的==~
和=~
引入了Regex Patter匹配开销,并且是稍微慢一些。这是您为正则表达式的强大功能和灵 active 所付出的代价。
回到您的用例,我认为 matches()
相对于 contains()
的性能成本可以忽略不计,因为 http 请求需要更长的时间才能完成执行。
在这种情况下,我会寻求具有更大可读性和灵 active 的解决方案,这将是正则表达式的方式。另一方面,如果您确实想要完全匹配,则应该坚持使用 contains
。
除了上述之外,如果您确实想要最后一点性能下降,您应该自己运行这两种方法的负载测试。
关于java - Groovy 脚本性能包含与匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62486978/