为什么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)所说的那样,要进行高速缓存涉及缓存。

上一篇:需要Android的Json解析中的帮助

下一篇:@@ GetMapping和@GetMapping(“ / {id}”)始终返回@GetMapping(“ / {id}”)

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载