提问者:小点点

Groovy脚本性能包含vs匹配


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


共1个答案

匿名用户

在Java,包含()In运算符,在纯字符串的基础上检查精确匹配,基本上是-1!=str.indexof('aaa')的快捷方式。

另一方面,Java中的matches()或groovy中的==~=~引入了正则表达式模式匹配开销,并且速度稍慢。 这就是您为regex的强大和灵活性所付出的代价。

回到您的用例,我认为matches()相对于contains()的性能开销可以忽略不计,因为http请求的执行时间要长很多。

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

除此之外,如果您真的想要最后一滴性能,您应该自己运行这两个方法的负载测试。