如何分析.NET程序中的正则表达式性能问题
发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,这篇文章将为大家详细讲解有关如何分析.NET程序中的正则表达式性能问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。之前在web程序中错误的使用了Re
千家信息网最后更新 2024年10月19日如何分析.NET程序中的正则表达式性能问题
这篇文章将为大家详细讲解有关如何分析.NET程序中的正则表达式性能问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
之前在web程序中错误的使用了RegexOptions.Compiled 选项,导致每个页面打开整度慢了接近0.5秒..
因为是在httpModule里过滤关键字,对性能比较敏感,做了个简单测试.
Stopwatch w = new Stopwatch(); w.Start(); Regex r = new Regex(@".*", RegexOptions.Compiled ); Match m = r.Match("aaa"); if (m.Success) { w.Stop(); Response.Write(w.Elapsed.TotalSeconds.ToString("0.0000000")); }
不加RegexOptions.Compiled ,计时器显示0.0000x,添加RegexOptions.Compiled 后计数器显示0.00x
如果正则式写的在复杂一些,那么仅编译时间都要0.x秒了. 看来大部分应用使用RegexOptions.Compiled 反而会降低性能,除非是很BT的应用
.NET的正则表达使用NFA引擎,NFA引擎正则式的写法对性能的很大.
Regex r = new Regex(@"(a|[^a]+)*^" ); string str="111111111111111111111111111111111"; Match m = r.Match(str); if (m.Success) { Response.Write(w.Elapsed.TotalSeconds.ToString("0.0000000")); }
只要str长度超过26基本上很匹配难完成.
以下这些都类似
(b|[^b]+)*^ (c|[^c]+)*^ (^|[^^]+)*(^|[^^]+)*^ (^|[^^]+|[^^]*)*^
看来正则的写法对性能影响挺大的
关于如何分析.NET程序中的正则表达式性能问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
性能
正则
程序
表达式
问题
分析
内容
写法
引擎
文章
更多
知识
篇文章
应用
不错
复杂
很大
关键
关键字
大部分
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
润和软件的应用软件开发
数据库建表一对多
软件开发工程师优点和缺点
bs软件开发环境
数据库关系分解
软件开发完客户不付款打官司
中山无线软件开发代理价格
区块链的服务器的作用
网络安全警察动画图片大全
镇江市app软件开发
互联网科技圈的悲哀人物
数据库字段的数据类型包括
首选wins服务器
华为应用软件开发
加快网络安全技术的运用
专业网络技术论坛
世界互联网领先科技成果要求
tdh数据库修改字段注释
风电场网络安全知识培训总结
数据库十大排名
乐摩吧软件开发工程师年薪
客户管理软件开发平台
湛江服务软件开发电话
网络安全讲座心得体会80字
ccaa网络安全
t 怎么导入科目凭证数据库
小北同学需要数据库嘛
网络技术基础 协议
新服务器uid是什么
天津三奇船舶软件开发有限公司