我最近在制作Packetbeat插件时一直在写Golang,我经常听到Golang在正则表达式中很慢,但是我试图看看它是否真的很慢。
与这次大家都喜欢的Python比较。
我肯定在某些情况下每种语言都不错,而在某些情况下它不是很好,但是
这只是实用代码的比较???
输入/输出
我想比较解析SIP name-addr的正则表达式的执行速度。
输入
- 显示名称
- 啜
- 0312341234
- 10.0.0.1
- 5060
- 标签= tag12345678
Golang代码
重复次数为1时的输出结果如下
Python代码
重复次数为1时的输出结果如下
测量值
上面的两个代码都设计为重复相同的过程100,000次,因此我想在运行时使用
另外,尝试将所有标准输出丢弃到
Golang执行结果
Python执行结果
比较结果
老实说,我认为这没什么不同????
<表格>
Golang Python<身体> 最大值 25.943 3.856
中位数 25.497 3.561
均值 25.5686 3.6288
最小值 25.251 3.448
[2018/04/14 21:20后记]
如果有的话,似乎在测量"正则表达式编译速度",但是???
我收到一条评论
,然后我再次验证这是事实。
[23:11后记]
似乎我陷入了每个编译阶段,因此我已经构建了它并再次对其进行了测量。
修改为传递已编译的正则表达式。
转到版本
执行结果
Python版本
执行结果
比较
<表格>
Golang Python<身体> 最大值 4.64 3.106
中位数 4.611 3.014
均值 4.603 3.014
最小值 4.563 2.928
缩小很多,但Golang仍然较慢。
我在某处读到Python很快,而不必一一编译,但是将其应用于其他语言并编写代码是一个不好的例子。感谢您指出!