为什么String的replaceAll()方法在第一次出现时会以高性能为代价,而在下一次出现时会以更快的速度?]
来源:爱站网时间:2021-09-16编辑:网友分享
问题描述
我已经了解到
String's replaceAll()
方法将正则表达式作为输入参数,并且可能会对性能产生重大影响。但是有一次,我用一个小程序读到了这个blog,断言(根据我的理解):
第一次处理replaceAll()
方法慢,但是下次处理更快。这是测试结果:
regex replace time taken: 14.09 milliseconds
manual replace time taken: 2.371 seconds
-----
regex replace time taken: 9.498 milliseconds
manual replace time taken: 2.406 seconds
-----
regex replace time taken: 2.184 milliseconds
manual replace time taken: 2.360 seconds
-----
此结果背后的优化机制是什么?
我已经了解到String的replaceAll()方法将正则表达式作为输入参数,并且可能会对性能产生重大影响。但是有一次,我用一个小程序阅读了这个博客,断言(...
思路一:
正则表达式最初被“编译”为内部格式,但随后我
相信
思路二:
通常,除非以怪异和不寻常的方式使用,否则不会对性能产生影响。正如乔恩·斯凯特(Jon Skeet)所说的那样,要进行高速缓存涉及缓存。