今天在写代码时突然想起测试经常用Microsoft.VisualBasic.Information.IsNumeric判断 url参数是否为数字时的这个方法的效率
因为数字是字符串是直接使用的,所以不需要转型,也就没有用tryparse
结果一测试吓一跳,这个方法的效率是如此的低,再测试了下tryparse还不错,正则的也比较差,
没什么技术含量,看结果吧:
先拓展下字符串:
测试的代码:
下面是我本机的测试结果
isDigit 1234:0,True
isNumberic 1234:173,True
try parse 1234:21,True
try catch 1234:23,True
regex 1234:138,True
isDigit 1234a:0,False
isNumberic 1234a:204,False
try parse 1234a:20,False
try catch 1234a:5309,False
regex 1234a:151,False
isDigit a1234:0,False
isNumberic a1234:191,False
try parse a1234:16,False
try catch a1234:5229,False
regex a1234:109,False
isDigit :0,False
isNumberic :0,False
try parse :0,False
try catch :1,False
regex :0,False
isDigit :0,False
isNumberic :1,False
try parse :0,False
try catch :1,False
regex :0,False
结果:循环判断是否是数字字符效率是最高的
而vbscript的方法效率比较低了
顺便测试了下vbscript里的left和right方法效率也一样的低,还不及substring的十分之一
所以vbscript里虽然有几个方法从名字看来比较好用,实际却比较杯具。