返回顶部
首页 > 资讯 > 精选 >如何分析.NET程序中的正则表达式性能问题
  • 168
分享到

如何分析.NET程序中的正则表达式性能问题

2023-06-17 23:06:15 168人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关如何分析.net程序中的正则表达式性能问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。之前在WEB程序中错误的使用了RegexOptions.Compiled

这篇文章将为大家详细讲解有关如何分析.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程序中的正则表达式性能问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 如何分析.NET程序中的正则表达式性能问题

本文链接: https://lsjlt.com/news/294515.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何分析.NET程序中的正则表达式性能问题
    这篇文章将为大家详细讲解有关如何分析.NET程序中的正则表达式性能问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。之前在web程序中错误的使用了RegexOptions.Compiled ...
    99+
    2023-06-17
  • 如何进行.NET正则表达式的分析
    这篇文章给大家介绍如何进行.NET正则表达式的分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。.NET正则表达式:来源正则表达式设计于五十年代,存在至今。正则表达式最初用于描述“正则集”,它们是一些神经生理学家研究的...
    99+
    2023-06-18
  • 如何使用.NET正则表达式区分中英文
    这篇文章主要介绍“如何使用.NET正则表达式区分中英文”,在日常操作中,相信很多人在如何使用.NET正则表达式区分中英文问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用.NET正则表达式区分中英文”的疑...
    99+
    2023-06-18
  • 如何在Python中处理正则表达式的问题
    如何在Python中处理正则表达式的问题,需要具体代码示例正则表达式是一种用于匹配和处理文本的强大工具。在Python中,可以使用内置的re模块来处理正则表达式。本文将介绍如何在Python中利用正则表达式进行文本处理,并提供具体的代码示例...
    99+
    2023-10-22
    Python正则表达式处理
  • shell中正则表达式的示例分析
    这篇文章给大家分享的是有关shell中正则表达式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。正则表达式匹配中文字符的正则表达式:[u4e00-u9fa5]评注:匹配中...
    99+
    2024-04-02
  • Java中正则表达式的示例分析
    这篇文章主要介绍了Java中正则表达式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现...
    99+
    2023-06-15
  • C#中正则表达式的示例分析
    这篇文章将为大家详细讲解有关C#中正则表达式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。(1)“@”符号符下两ows表研究室的火热,当晨在“@”虽然并非C#正则表达式的“成员”,但是它经常与C...
    99+
    2023-06-18
  • 如何分析Python正则表达式re模块
    本篇文章为大家展示了如何分析Python正则表达式re模块,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。简介正则表达式(regular expression)是可以匹配文本片段的模式。最简单的正则表...
    99+
    2023-06-17
  • mysql中正则表达式搜索功能的示例分析
    这篇文章主要介绍mysql中正则表达式搜索功能的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:我们知道正则表达式是描述搜索模式的特殊字符串。 它是一个强大的工具,为...
    99+
    2024-04-02
  • VB.NET正则表达式如何简化程序代码
    小编给大家分享一下VB.NET正则表达式如何简化程序代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、VB.NET正则表达式处理类在VB.NET正则表达式必须...
    99+
    2023-06-17
  • PHP开发中如何优化正则表达式的匹配性能
    使用最简匹配模式:在进行正则表达式匹配时,应尽量避免使用贪婪模式,而使用最简匹配模式。贪婪模式表示尽可能多地向后匹配,而最简匹配模式表示尽可能少地向后匹配。例如,将一个字符串中的所有HTML标签提取出来,可以使用如下正则表达式:preg_m...
    99+
    2023-10-21
    正则表达式优化 PHP开发中的性能优化
  • Linux命令中正则表达式的示例分析
    小编给大家分享一下Linux命令中正则表达式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!命令中的正则表达式 如果要在命令输出或文本中筛选内容...
    99+
    2023-06-09
  • Dreamweaver中正则表达式搜索的示例分析
    这篇文章主要为大家展示了“Dreamweaver中正则表达式搜索的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Dreamweaver中正则表达式搜索的示例分析”这篇文章吧。比如:&nb...
    99+
    2023-06-08
  • javascript中正则表达式分组、断言的示例分析
    这篇文章主要为大家展示了“javascript中正则表达式分组、断言的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript中正则表达式分组...
    99+
    2024-04-02
  • JavaScript正则表达式之非捕获性分组的示例分析
    这篇文章主要介绍了JavaScript正则表达式之非捕获性分组的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。非捕获性分组定义子表达...
    99+
    2024-04-02
  • 分析java中藏在正则表达式里的陷阱
    这篇文章主要讲解了“分析java中藏在正则表达式里的陷阱”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析java中藏在正则表达式里的陷阱”吧!前几天线上一...
    99+
    2024-04-02
  • ES6中正则表达式和字符串正则方法的示例分析
    这篇文章给大家分享的是有关ES6中正则表达式和字符串正则方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。RegExp构造函数在ES5中,RegExp构造函数的参数有两...
    99+
    2024-04-02
  • C++中的正则表达式如何使用
    这篇文章主要介绍了C++中的正则表达式如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++中的正则表达式如何使用文章都会有所收获,下面我们一起来看看吧。介绍C++ 正则表达式教程解释了 C++ 中正则表...
    99+
    2023-06-30
  • JS之正则表达式懒惰性和贪婪性的示例分析
    这篇文章主要为大家展示了“JS之正则表达式懒惰性和贪婪性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS之正则表达式懒惰性和贪婪性的示例分析”这篇文...
    99+
    2024-04-02
  • 微信小程序如何实现input正则表达式验证功能
    小编给大家分享一下微信小程序如何实现input正则表达式验证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:1、效果...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作