正则表达式进行数据类型验证效率如此低下
闲来无事,探讨一下正则表达式验证数据类型的效率问题。
提到数据类型的验证,相信大多数朋友都会采用正则表达式。之前我也是采用的正则验证的。
而现在,我个人推荐在进行 int、 double、 decimal、等数据进行验证时,最好采用 它们的TryParse方法。
这里只对 int 和 double 的字符串进行了验证效率的测试。
先看一下我的测试项目,其中用到了 老赵的 CodeTimer
DoubleRegexValidator 的代码
DoubleTryCatchValidator 的代码
DoubleTryParseValidator 的代码
DoubleTest 的代码
Program 的代码
有关于 int 类型的 测试代码我就不再贴出 基本和 double的测试方式相同
以下是我用 老赵的 CodeTimer 得到的测试数据。
1000000 次迭代的测试结果
double 的测试数据 (测试值确实是double时)
显然 正则验证效率远远低于其它两种
trycatch 和 tryParse 在效率上接近。
但这仅仅在 验证值确实是 double 类型时,两种方式效率接近。
若 验证值是其它类型的字符串时 tryCatch 将进行异常处理,其开销是非常巨大的。
以下是当 被测值是 非 double 字符串是的测试数据
以上测试数据仅供参考,希望对大家有用,也欢迎大家发表各自观点。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述