博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ruby 2.4 的一些新特性 已翻译 100%
阅读量:6589 次
发布时间:2019-06-24

本文共 1334 字,大约阅读时间需要 4 分钟。

使用了 Regexp#match? 的更快的正则表达式

:
require 'benchmark/ips'

Benchmark.ips do |bench|

EMPTY_STRING = ''
WHITESPACE = " \n\t\n "
CONTAINS_TEXT = ' hi '

PATTERN = /\A[[:space:]]*\z/

bench.report('Regexp#match?') do

PATTERN.match?(EMPTY_STRING)
PATTERN.match?(WHITESPACE)
PATTERN.match?(CONTAINS_TEXT)
end

bench.report('Regexp#match') do

PATTERN.match(EMPTY_STRING)
PATTERN.match(WHITESPACE)
PATTERN.match(CONTAINS_TEXT)
end

bench.report('Regexp#=~') do

PATTERN =~ EMPTY_STRING
PATTERN =~ WHITESPACE
PATTERN =~ CONTAINS_TEXT
end

bench.report('Regexp#===') do

PATTERN === EMPTY_STRING
PATTERN === WHITESPACE
PATTERN === CONTAINS_TEXT
end

bench.compare!

end

Warming up --------------------------------------

Regexp#match? 160.255k i/100ms
Regexp#match 44.904k i/100ms
Regexp#=~ 71.184k i/100ms
Regexp#=== 71.839k i/100ms
Calculating -------------------------------------
Regexp#match? 2.630M (± 4.0%) i/s - 13.141M in 5.004929s
Regexp#match 539.361k (± 3.9%) i/s - 2.694M in 5.002868s
Regexp#=~ 859.713k (± 4.2%) i/s - 4.342M in 5.060080s
Regexp#=== 872.217k (± 3.5%) i/s - 4.382M in 5.030612s

Comparison:

Regexp#match?: 2630002.5 i/s
Regexp#===: 872217.5 i/s - 3.02x slower
Regexp#=~: 859713.0 i/s - 3.06x slower
Regexp#match: 539361.3 i/s - 4.88x slower
zxdzhttp://huawen168.bokee.com/506982734.html,

转载于:https://blog.51cto.com/14017122/2299574

你可能感兴趣的文章
删除数组中的指定元素 | JavaScript
查看>>
CSS3+JS实现静态圆形进度条【清晰、易懂】
查看>>
关于树形插件展示中数据结构转换的算法
查看>>
图片加载框架之Fresco
查看>>
Spotify开源其Cassandra编排工具cstar
查看>>
高性能web建站规则(将js放在页面底部)
查看>>
Java EnumMap工作原理及实现
查看>>
阐述Spring框架中Bean的生命周期?
查看>>
虚拟内存管理
查看>>
注水、占坑、瞎掰:起底机器学习学术圈的那些“伪科学”
查看>>
大数据小视角1:从行存储到RCFile
查看>>
JavaScript常用设计模式
查看>>
第18天:京东网页头部制作
查看>>
好消息:Dubbo & Spring Boot要来了
查看>>
面向对象封装的web服务器
查看>>
pytorch新手需要注意的隐晦操作Tensor,max,gather
查看>>
开启“互联网+”模式打造智能移动APP巡检系统
查看>>
以太坊和区块链
查看>>
MyBatis3-以接口方式编程
查看>>
南开大学提出新物体分割评价指标,相比经典指标错误率降低 69.23%
查看>>