11个Visual Studio代码性能分析工具
软件开发中的性能优化对程序员来说是一个非常重要的问题。一个小问题可能成为一个大的系统的瓶颈。但是对于程序员来说,通过自身去优化代码是十分困难的。幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和性能测试,从而大大简化程序员进行代码性能优化的过程。MSDN杂志2011年7月份曾发布主题为“.NET代码分析工具和技术”的那一期,让广大程序员收获颇丰。四年过去之后,这些工具又进一步做出了很多改进,同时也出现了更多的选择。本文对当前主流的一些Visual Studio代码性能分析工具进行简单的梳理,希望对大家有所帮助。本文由黄立威、张天雷整理。
AMD CodeXL
2011年发布的AMD CodeAnalyst Performance Analyzer 现在已经被AMD CodeXL所替代。AMD CodeXL的主要目的是帮助开发者更好利用CPU, GPU和APU的计算性能,具有强大的GPU调试、CPU和GPU代码分析、及静态的OpenCL内核性能分析等能力。
AMD提供了支持Windows 7、Windows 8和Linux系统的单机版CodeXL分析工具。在Visual Studio 2010,2012和2013上也有AMD CodeXL的扩展版,其在Visual Studio开发环境中集成了GPU和APU的调试和分析能力。旧的AMD CodeAnalyst Performance Analyzer extension目前仍然可用。
JetBrains dotTrace
JetBrains dotTrace经过四年漫长的发展,现在已经是一个包含代码执行跟踪工具和性能分析工具的套件。它包括dotTrace Performance和dotTrace Memory 两个工具,dotTrace Performance用来分析代码性能,比如函数执行时间,调用次数,消耗时间比率等,dotTrace Memory一般用来分析内存占用情况。你可以在本地和远程系统中对代码进行跟踪、采样或逐行分析。dotTrace对微软.NET框架的支持一直到4.5.2版本,也可用于分析Silverlight4或5的单机桌面应用程序、Web应用程序、Windows通信基础(WCF)服务等。新功能包括时间轴分析(timeline profiling)和SQL查询分析。
dotTrace extension Visual Studio Gallery网页提供了一个非常清晰,简洁的产品概述。通过看完概述如果你对产品有兴趣,可以到JetBrains网站决定下载或购买。
JetBrains目前提供有时间限制的免费试用版以及几种许可选项,例如ReSharper Ultimate包,其中包括ReSharper,dotCover,dotTrace,dotMemory,以及ReSharper C + +,所有包只需要一个许可证。
RedGate ANTS
RedGate ANTS性能分析工具和ANTS内存分析工具 是另一组的商业工具,可用于分析.NET可运行文件,ASP.NET应用程序,IIS中的Web服务,IIS Express, Web开发服务器,SharePoint 2007或2010年套装,Silverlight应用程序,Windows服务,和COM +应用程序等。
ANTS性能分析工具(图1)可以帮助分析任何.NET支持的代码库,以及HTTP请求,存储IO,同时支持SQL服务器,Oracle,MySQL,MariaDB,PostgreSQL的数据访问.
图1. Red Gate ANTS 性能分析工具
ANTS内存分析工具可以使.NET的内存分析更加简单,ANTS内存分析工具可以用来查找内存泄露,优化应用程序,从而使其具有较高的内存使用率,并能检查代码的健康状况,能分析任何.NET应用程序,包括ASP.NET网络应用程序。
两个工具支持从.NET1.0版本到4.5版本的任何语言的框架,以及Visual Studio 2005、2008、2010、2012和2013。可以在RedGate网站上查看试用版以及定价。同时也有一个免费的版本ANTS Profiler Visual Studio Add-in extension,让你在Visual Studio上可以直接访问性能分析工具和内存分析工具。
Telerik JustTrace
2013年,Telerik获了EQATEC,因此EQATEC分析工具现在是Telerik JustTrace .NET内存和性能分析工具的一部分。JustTrace提供两种模式的性能分析,轻量化分析的采样分析工具和收集CLR事件进行更深入分析的跟踪工具。它还具有捕获 .NET实例分配快照的内存分析的功能。
JustTrace集成了Visual Studio 2013,2012,2010和2008,也可以作为一个单机版的分析工具。Telerik提供30天的试用期,同时JustTrace也可作为DevCraft工具套件的一部分。
Visual Studio质量和诊断中心
除了上述分析工具,Visual Studio本身也内置了优秀的分析和调试工具,都放在 Visual Studio的质量与诊断中心。
质量和诊断中心除了包括熟悉的Visual Studio分析工具,还有一些新的工具,其功能包括JavaScript内存分析, HTML UI响应能力分析,和Windows应用商店应用的XAML UI响应能力分析,和能量消耗、CPU使用、内存使用情况分析等。此外,Visual Studio 2012中的JavaScript函数时间和性能向导也已经更新,包含在新的质量和诊断中心中。因为这些工具现在都可以在中心中获得,所以可以在一个单独的分析会话中运行多个工具,并获得相互结合和交叉分析的结果。
你还可以在Visual Studio 2015的性能和诊断页面运行分析工具。Visual Studio 2015中的一些调试和诊断功能得到了增强,包括支持基于JavaScript的Apache Cordova项目,以及基于C # 的Xamarin和Android项目的跨平台调试
其他改进包括在“监视”窗口通过lambda表达式进行step,通过Visual Studio远程工具运行、调试和测试其他计算机上的程序,内置的HTTP流量数据的网络诊断等。
许多这些新工具与强大的Visual Studio 2015诊断工具调试器窗口放在了一起,并组合了输出窗口,IntelliTrace历史数据,以及性能和诊断中心的工具。
其他的性能分析工具
除了以上介绍的代码性能分析工具,还存在其他的专业的代码性能分析工具,其中许多是由和你一样的程序员所开发,并可供免费使用。
Clr Heap Allocation Analyzer extension是一个基于Roslyn的C #堆分配诊断分析工具,可以用于查看清晰的分配,boxing分配,闭包捕获等。您可以作为一个单机版的应用程序或作为Visual Studio内部的代码辅助工具运行该分析工具。
Visual Leak Detector for Visual C++是一个开源的Visual C++内存泄漏检测系统,它与Visual Studio调试器一起工作。最初由Dan Moulding开发,项目目前由Arkadiy shapkin维护。
Frans Bouma的ORM Profiler extension(图2)让你可以实时地深入实体框架数据访问代码发现性能问题,并快速定位到它们。它具有在线、离线两种产品分析模式,可以直接从分析结果导航到项目中的相关代码。
图2 使用ORM Profiler进行实体框架数据访问的调试
为了检查和优化项目中的静态资源,Mads Kristensen的Image Optimizer extension 为解决方案资源管理器中的任何文件夹和图标添加了右键菜单,帮助自动优化文件夹中所有的PNG,GIF和JPEG文件。
最后,还有Xamarin Profiler,它是一个跨平台开发框架。在这一框架内,开发 Android 和 iOS 应用可以不用转到 Eclipse 或者额外购买 Mac 并使用 Xcode,而继续在Visual Studio之中使用 C# 与 .NET框架进行。
本文简单介绍了Visual Studio中当前比较流行的一些性能分析工具,事实上还有非常多的工具可供选择。但对于程序员来说,最重要的是根据自身的编程习惯以及工程项目的特点做出适合自己的选择。
11个Visual Studio代码性能分析工具的更多相关文章
- .NET 11 个 Visual Studio 代码性能分析工具
原文地址 软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行 ...
- 11 个 Visual Studio 代码性能分析工具
软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...
- .NET : 使用代码性能分析工具
NET : CLR Profiler的使用 经常讲课的时候会提到值类型和引用类型,也会提到如何查看它们的大小.多次被朋友问到,如何真的想要知道到底每个方法分配了多少内存之类的问题,其实这可以通过CLR ...
- .NET 性能分析工具
Download .NET Profiler http://www.yourkit.com/dotnet/download/ dotTrace 5.5 Performance http://www.j ...
- 提升ReSharper和Visual Studio的性能
转载 作者:赵青青 出处:http://www.cnblogs.com/zhaoqingqing/ 文章目录[点击展开](?)[+] 提升性能 我们不断地确保ReSharper的正常 ...
- CPU性能分析工具原理
转载请保留以下声明 作者:赵宗晟 出处:https://www.cnblogs.com/zhao-zongsheng/p/13067733.html 很多软件都要做性能分析和性能优化.很多语言都会有他 ...
- Java 性能分析工具 , 第 2 部分:Java 内置监控工具
引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...
- 系统级性能分析工具perf的介绍与使用
测试环境:Ubuntu16.04(在VMWare虚拟机使用perf top存在无法显示问题) Kernel:3.13.0-32 系统级性能优化通常包括两个阶段:性能剖析(performance pro ...
- linux命令(4):top 命令(性能分析工具)
linux 的top命令详解 简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个 ...
随机推荐
- Java JVM、JNI、Native Function Interface、Create New Process Native Function API Analysis
目录 . JAVA JVM . Java JNI: Java Native Interface . Java Create New Process Native Function API Analys ...
- STM32F207和DM9161A的以太网实现方案
摘要:电力抄表系统常通过网络采集和传输电网中的谐波等信息.本文提出了一种适合电力系统的网络设计方案.在STM32F207和DM9161A为核心的硬件平台上,完成了LwIP协议栈的移植,实现了远程终端和 ...
- C/C++ 程序的build过程
(This article is under constant construction) DISCLAIMER: 本文的主要内容来自https://gcc.gnu.org/onlinedocs/gc ...
- Beta版本冲刺第一天 12.5
一.站立式会议照片: 二.项目燃尽图: 三.项目进展: 成 员 前段时间完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 对Alpha版本的分析总结,学习新技术,对Beta版本的讨论规 ...
- python字符编码(二)
一.什么是字符编码 计算机要想工作必须通电,也就是说‘电’驱使计算机干活,而‘电’的特性,就是高低电压(高低压即二进制数1,低电压即二进制数0),也就是说计算机只认识数字 编程的目的是让计算机干活,而 ...
- 捉襟见肘之NSMutableSet和NSPointerArray
用来学习复习记录,其他优秀的译文,点击这里 一.NSMutableSet NSMutableSet和NSMutableArray存放数据方式分别是无序和有序,这说明,数组是可以通过index获取对象. ...
- Altium Designer 15 --- Make LOGO/ICON
Line frame is created by Rhino(DXF file format)
- 【原】redux学习笔记
上周学习了flux,这周研究了一下redux,其实很早之前都已经在研究他们了,只是之前一直没搞懂,最近这两周可能打通了任督二脉,都算入门了. 写博客的目的主要是做一下笔记,总结一下思路,以及和大家交流 ...
- Android Studio MultiDex 分包碰到的坑
前天准备发包了,测试完毕,打好正式签名包,装到手机上,运行不起来. 网上查了大量资料,都没有解决方案. log显示如下: 04-26 10:07:57.727 1538-1538/? I/MultiD ...
- Eclipse自动补全+常用快捷键
一,Eclipse自动补全增强方法 在Eclipse中,从Window -> preferences -> Java -> Editor -> Content assist - ...