为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式引擎pcre使用JIT(即时编译)后比不使用速度快了好几倍(甚至10倍),为什么这么快?

正则表达式引擎pcre使用JIT(即时编译)后比不使用速度快了好几倍(甚至10倍),为什么这么快?

翻阅古今 2019-04-09 20:24:01
原来就不慢,为什么还能提高这么多,哪方面提的速呢?---把我下面的回复放上来,当作问题的补充---因为pcre本身也是用c写的,并不是动态编译。我现在不明白的是它如何动态编译的,是分析二进制代码然后再重新编译?还是先运行一个虚拟机,再在上面跑,然后再分析?还有就是如何优化的?最近一直再看pcre的源码(英文比较烂,看的慢,刚把未用JIT的代码看了个大概),觉得原来的代码并没有多少冗余,如果再打开c编译器的优化选项,觉得从代码本身来看并没有多大的优化余地,看了pcre的帮助文件也没说清楚原理,只说表达式里包含循环或者表达式越长用JIT的优化效果越明显,测试了确实如此。再就是对这个比较感兴趣是也写过一个正则表达式引擎,速度和未用jit加速的pcre差不多,而且能优化的手段基本都用了,所以非常好奇jit是怎么优化的。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 627 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信