尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
.NET性能调优之二:使用Visual Studio进行代码度量
.NET性能调优系列文章系列文章索引.NET性能调优之一ANTS Performance Profiler的使用.NET性能调优之二使用Visual Studio进行代码度量.NET性能调优之三YSlow相关规则的调优工具和方法使用Visual Studio进行代码度量在这篇文章里暂且抛开代码、数据库和网络的优化从软件代码度量的角度来看看其对.NET性能调优的作用。当软件项目异常庞大的时候通过简单的CodeReview进行软件复杂度估量和可靠性评测已经变得不太现实还好有软件来完成这些事情。降低软件的复杂度也会对性能调优带来很大的帮助。在Visual Studio 2008前进行代码度量还要借助第三方的一些工具如devMetrics、C# Source Code Metrics等而从Visual Studio 2008开始微软就在里面集成了代码度量的工具。点击Visual Studio的“分析”菜单可以看到度量工具能够针对当前项目或者整个解决方案进行代码度量。下拉菜单的上面还有和第一篇文章里介绍的ANTS Performance Profiler类似的代码性能分析工具简单使用了下发现当要查看.NET框架内部实现的耗能时是看不到的其他的功能基本能满足需求感谢园友风云的提醒。短暂运行后就可以看到分析的结果。这里列出了所有能计算出来的列下面是MSDN对计算结果值意义的说明。层次结构按照项目-命名空间-类-属性/方法进行逐级细分所以可以只针对某一个方法查看相关的代码度量值。可维护性指数计算一个介于 0 和 100 之间的指数值表示维护代码的相对容易度。 值越大表示可维护性越好。 彩色图标的等级可用来快速识别代码中的故障点。 绿色等级介于 20 和 100 之间表示代码的可维护性良好。 黄色等级介于 10 和 19 之间表示代码的可维护性中等。 红色等级是介于 0 和 9 之间的等级表示可维护性低。圈复杂度衡量代码在结构上的复杂程度。 通过计算程序流中的不同代码路径数而创建的。 具有复杂控制流的程序需要更多测试才能实现良好的代码覆盖率并且不容易维护。在某些情况下Visual Studio 2010 中的方法的圈复杂度计算与早期版本有所不同具体参见Visual Studio 2010 在代码复杂度计算方面所做的更改。继承深度指明扩展到类层次结构根的类定义的数目。 层次结构越深则越难了解特定方法和字段是在何处定义或/和重新定义的。类耦合通过参数、局部变量、返回类型、方法调用、泛型或模板实例化、基类、接口实现、在外部类型上定义的字段以及特性修饰来衡量与唯一类的耦合程度。 良好的软件设计要求类型和方法应具有较高的内聚力和较低的耦合。 耦合较高表示设计难以重用和维护这是因为它与其他类型之间存在许多依存关系。代码的行数指明代码中的大概行数。 该计数基于 IL 代码因此并不是源代码文件中的确切行数。 计数过高可能表示某个类型或方法正在尝试执行过多的工作应予以拆分。 还可能表示该类型或方法难以维护。最需要关注的可能就是圈复杂度和类耦合两个度量值了以使得程序保持高类聚低耦合如果圈复杂度过高应该将函数拆解这样在进行性能调优时可以逐个击破维护起来也比较容易。结语希望在探讨程序性能调优时别忘记先将软件的复杂度和可维护性降低一些这样在遇到复杂的性能优化问题时思路才能足够清晰可以将精力集中在细分后的代码段上而不是有太多的代码噪音来干扰逻辑的梳理与思考。所以这个系列文章先将这部分内容拿到了第二篇里来和大家一起探讨了。文章有所疏漏和要补充的请留言一起讨论也请关注后续的相关文章。如果文章对你有点帮助推荐一下吧谢谢 :)
RELATED

相关推荐

Unity资源管理优化:使用AssetBundleExtractor进行深度分析与性能调优

Unity资源管理优化:使用AssetBundleExtractor进行深度分析与性能调优

1. 项目概述:为什么Unity开发者绕不开资源管理优化 如果你在Unity项目里摸爬滚打过一段时间,尤其是项目体量稍微大一点,或者需要热更新,那你一定对资源管理这四个字又爱又恨。爱的是,一套好的资源管理方案能让项目运行…

📅 2026/9/23 1:09:42
不同版本的SQL Server之间数据导出导入的方法及性能比较

不同版本的SQL Server之间数据导出导入的方法及性能比较

工作中有段时间常常涉及到不同版本的数据库间导出导入数据的问题,索性整理一下,并简单比较下性能,有所遗漏的方法也欢迎讨论、补充。 00.建立测试环境 01.使用SQL Server Import and Export Tool 02.使用Generate Scripts 03.使用BCP 04.使用…

📅 2026/9/9 21:21:21
ASP.NET Web API(二):安全验证之使用HTTP基本认证

ASP.NET Web API(二):安全验证之使用HTTP基本认证

在前一篇文章ASP.NET Web API(一):使用初探,GET和POST数据中,我们初步接触了微软的REST API: Web API。 我们在接触了Web API的后就立马发现了有安全验证的需求,所以这篇文章我们先来讨论下安全验证一个最简…

📅 2026/9/6 0:52:15
MORE NEWS

更多资讯

📰

发外推网保姆级教程:3步搞定底层原理,告别教程看了白看

发外推网保姆级教程:3步搞定底层原理,告别教程看了白看 你是不是也陷入过这种死循环?在掘金技术社区刷了几百篇高赞文章,收藏了一堆“从零到一”的系列教程,结果一动手写项目就卡壳。脑子里全是零散的知识点,拼不到一起,代码一写就是满屏报错。别急,…

📰

面试必杀技:3分钟吃透节卦原理,搞定性能优化难题

面试必杀技:3分钟吃透节卦原理,搞定性能优化难题 面试被问“请解释一下节卦在分布式系统中的原理”,你愣住三秒,心里慌得一批?别慌,这不是玄学,是 性能优化…

📰

3步搞懂2026最新网易云会员兑换码底层逻辑

3步搞懂2026最新网易云会员兑换码底层逻辑 翻遍官方文档,你是不是也被那几千字的接口定义和参数说明绕晕了?官方文档太长抓不住重点,是绝大多数开发者接入第三方服务时的噩梦。很多教程只告诉你“调这个接口”,却没人告诉你为什么这么调,以及数据在…

📰

苹果手机助手官方下载图解原理

苹果助手官方下载一文搞懂:3个核心组件选型避坑指南 刚把 Swift 语法书翻烂,打开 Xcode 却对着空白工程发呆?这是无数 iOS 新手的噩梦。你明明背熟了 let 和 var ,也懂 ARC…

📰

告别什么然大悟:3个最佳实践让性能提升50%

告别什么然大悟:3个最佳实践让性能提升50% 看了一堆教程还是不会写项目?别急,问题往往不在代码本身,而在你根本没搞懂 什么然大悟 背后的逻辑。很多新手一上来就堆砌语法,结果代码跑得比蜗牛还慢,还觉得自己是“天才”。其实,真正的 最佳实践…

📰

1q币等于多少q点?面试必问的换算逻辑与代码实战

1q币等于多少q点?面试必问的换算逻辑与代码实战 版本升级后 API 全变了,这是很多开发者在接手旧项目时的噩梦。特别是在处理支付网关或虚拟币转换时,底层的数值精度处理稍有不慎,资金对账就会出错。今天我们要聊的 1q币等于多少q点…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬