Java正则达式引起死循环问题解决办法(2)

?bug_id=5050507 ?bug_id=6988218

附:也可以参考 这篇文章,非常不错。 

通过上面方法解决上抛异常问题,修改完机器重启后发现异常是不抛了,但CPU占用率高并没有好转,频频报警,经过仔细排查,有五个处理正则的线程把CPU资源耗完了,实在没招,最后校验采用其它方法,彻底干掉正则。 

总结:通过这次线上问题排查,正则表达式是个双仞剑,如果大规模数据的校验最好不要使用正则,效率非常差。CPU的处理能力会全部耗费在处理这几个正则上。另外该问题是项目上线一段时间后才出现,这说明当数据达到一个数量级后,正则的处理效率会快速下降,这样就像我这种情况,刚开始数据量小,一直没有问题,等到访问量突然增大后,CPU在短时间内LOAD值非常高。所以正则轻易不要���在大数据量或者并发访问较高的应用中。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wypwpg.html