我是groovy语言的新手。 我使用groovy代码检查http url的响应是否有效。 从性能的角度来看,通常建议使用-contains()或matches(),这将允许我验证是否得到了正确的响应。
在Java,包含()
或In
运算符,在纯字符串的基础上检查精确匹配,基本上是-1!=str.indexof('aaa')
的快捷方式。
另一方面,Java中的matches()
或groovy中的==~
和=~
引入了正则表达式模式匹配开销,并且速度稍慢。 这就是您为regex的强大和灵活性所付出的代价。
回到您的用例,我认为matches()
相对于contains()
的性能开销可以忽略不计,因为http请求的执行时间要长很多。
在这种情况下,我会选择具有更高可读性和灵活性的解决方案,这将是一种正则表达式方式。 另一方面,如果您确实想要精确匹配,您应该坚持使用contains
。
除此之外,如果您真的想要最后一滴性能,您应该自己运行这两个方法的负载测试。