性能优化
文章平均质量分 95
BianChengNan-BCN-BCN
喜欢电脑知识 大家多多交流
展开
-
记一次 .NET 程序的性能优化实战(3)—— 深入 .NET 源码
前言 前两篇文章 part1 和 part2 基本上理清了 IsSplitter() 运行缓慢的原因 —— 在函数内部使用了带 Compile 选项的正则表达式。 但是没想到在 IsSplitter() 内部使用不带 Compiled 选项的正则表达式,整个程序运行起来非常快,跟静态函数版本的运行速度不相上下。又有了如下疑问: 为什么使用不带 Compiled 选项实例化的 Regex 速度会这么快? 为什么把 Regex 变量从局部改成全局变量后运行速度有了极大提升?除了避免重复实例化,还有哪些提原创 2022-01-08 20:03:04 · 366 阅读 · 0 评论 -
记一次 .NET 程序的性能优化实战(2)—— 使用 perfview 找出 Regex 慢的根本原因
前言 我在上一篇文章《记一次 .NET 程序的性能优化实战(1)—— 使用 process explorer 快速定位问题代码》中用 process explorer 定位到了导致程序运行缓慢的原因——使用了 .NET 中的正则表达式。.NET 中的正则表达式真这么慢吗?带着疑问,开始了本次的探索之旅。喜欢刨根问底的小伙伴儿快来一起看看吧! 在开始之前,我还是把关键函数贴一下,大家也可以看看到底哪里写的有问题。代码如下: private static bool IsSplitter(st原创 2022-01-08 20:01:10 · 310 阅读 · 0 评论 -
记一次 .NET 程序的性能优化实战(1)—— 使用 process explorer 快速定位问题代码
缘起 因为需要分析 tfs 提交日志,并按照一定条件(比如,提交信息或者用户名)分类整理,特意写了这个小工具。在使用过程中发现,某些情况下会花费很长时间才能返回处理结果,当时稍稍做了一些优化,已经能满足当时的应用场景了。但是在处理大文件的时候依然会花费很长时间。忍了这么久了,终于有机会做一次效率优化了。 实现逻辑介绍 整体实现逻辑并不复杂,这里稍微作下介绍: 打开需要处理的日志文件(通过 -t 参数传递,如果没指定就默认打开 tfs.txt),然后按行读取,并通过 IsSplitter() 函数原创 2022-01-08 19:59:08 · 359 阅读 · 0 评论