如何分析.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安全错误
数据库的锁怎样保障安全
网络安全类考研专业
ibm 服务器培训
网络安全具有以下主要特征
计算机网络技术的实习
铜仁公安网络安全万山县公安局
查服务器型号
泉州媒体服务器
农安品质网络技术服务
应用服务器防病毒攻击实验总结
设置图标软件开发
如何汇总一个数据库
思政大讲堂主题网络安全
wsus服务器搭建
zone数据库
1530网络安全教育100条
数据库怎么批量复制到excel
数据库可以投资哪些期刊
软件开发详细设计书百度文库
网络安全技术与应用笔记
网络安全检查操作指南.doc
csgo对枪服务器
12智能化软件开发
国内有万代的服务器吗
杭州澜清网络技术有限公司
网络安全威胁泛化与分布
国际航协imx数据库
以父之名伴奏软件开发
良村镇卫生院网络安全密码
如何汇总一个数据库
数据库怎么批量复制到excel