正则表达式进行数据类型验证效率如此低下

闲来无事,探讨一下正则表达式验证数据类型的效率问题。

提到数据类型的验证,相信大多数朋友都会采用正则表达式。之前我也是采用的正则验证的。

而现在,我个人推荐在进行 int、 double、 decimal、等数据进行验证时,最好采用 它们的TryParse方法。

这里只对 int 和 double 的字符串进行了验证效率的测试。

先看一下我的测试项目,其中用到了 老赵的 CodeTimer

2009121909162411.jpg

 

DoubleRegexValidator 的代码

 

2009121909174130.jpg

 

DoubleTryCatchValidator 的代码

2009121909200164.jpg

 

DoubleTryParseValidator 的代码

 

2009121909215513.jpg

 

DoubleTest 的代码

2009121909242190.jpg

 

Program 的代码

2009121909251165.jpg

 

有关于 int 类型的 测试代码我就不再贴出 基本和 double的测试方式相同

 

以下是我用 老赵的 CodeTimer 得到的测试数据。

 

1000000 次迭代的测试结果

 

double 的测试数据 (测试值确实是double时)

2009121909264364.jpg

 

显然 正则验证效率远远低于其它两种

trycatch 和 tryParse 在效率上接近。

但这仅仅在 验证值确实是 double 类型时,两种方式效率接近。

若 验证值是其它类型的字符串时 tryCatch 将进行异常处理,其开销是非常巨大的。

 

以下是当 被测值是 非 double 字符串是的测试数据

 

2009121909340414.jpg

 

以上测试数据仅供参考,希望对大家有用,也欢迎大家发表各自观点。

 

测试项目下载

 

转载于:https://www.cnblogs.com/tandly/archive/2009/12/19/1627588.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值