Perfview是微软官方推出的完全开源的性能分析工具,由于这些堆可能非常大,PerfView允许控制采样的大小,如果堆太大而无法完整地捕获,则获取具有代表性的样本会遇到一些麻烦。PerfView可以指示操作系统在线程睡眠或唤醒时记录事件,并有一个显示程序正在等待的位置。PerfView能够读取Linux内核中内置的Linux'Perf Events'收集器的输出。这使您可以轻松生成数据,然后可以在PerfView强大的堆栈查看器中查看这些数据。Perfview并对其的数据进行分析,下图显示运行命令tutorial。欢迎来快盘软件园下载体验。
Perfview软件亮点
1.响应时间调查:通过使用'ThreadTime'选项收集足够的信息,以便PerfView能够测量每个线程(阻塞与否),收集与每个请求相关的所有线程时间,并将其显示为树。这就是'线程时间(有开始停止活动)视图。
2.托管内存调查:PerfView还可以获取。 netgc堆的快照。由于这些堆可能非常大,PerfView允许控制采样的大小,如果堆太大而无法完整地捕获,则获取具有代表性的样本会遇到一些麻烦。然后它将堆中对象的图形转换为树,并在用于CPU调查的同一堆栈查看器中显示。
3.CPU调查:PerfView能够读取Linux内核中内置的Linux'Perf Events'收集器的输出。
Perfview软件优势
1.在PerfView的stack viewer中查看自己的层次数据:PerfView的stack viewer功能强大,但也非常灵活。PerfView定义了一个非常简单的XML或JSON格式,可以读入这个查看器。这使您可以轻松生成数据,然后可以在PerfView强大的堆栈查看器中查看这些数据。
2.挂钟/阻塞时间调查:如果您的程序太慢,但它没有消耗过多的CPU,那么它必须被阻止等待其他东西(磁盘网络,…)。PerfView可以指示操作系统在线程睡眠或唤醒时记录事件,并有一个显示程序正在等待的位置。
3.内存调查:您还可以在每次OS堆内存分配器分配或释放对象时打开事件。使用这些事件,您可以看到哪些调用堆栈负责大多数非托管内存分配。CPU调查:PerfView能够读取Linux内核中内置的Linux'Perf Events'收集器的输出。
4.PerfView利用Windows事件追踪,而ETW从Windows 2000 Server以来就一直内置于操作系统中。只是最近才有XPerf和PerfView一类的工具利用ETW数据来解决性能问题。事件数据被收集到一个事件跟踪日志(ETL)中。根据你想要跟踪事件的数量和时间的长度,ETL文件可能会非常大。你可以限制这个日志文件的大小,如果空间受限或者你不知道问题何时发生的话,你还可以让它们循环。默认每毫秒一次的采样间隔在收集时间内产生了大概百分之十的CPU开支。建议大概5000个样本(5秒)用于一次代表性配置采样。
5.CPU调查:其中一个比较有用的事件(默认情况下是打开的)是'profile'采样事件。此事件每隔毫秒对计算机的每个CPU的指令指针进行采样。每个示例捕获当前正在执行的线程的完整调用堆栈;提供有关该线程在高抽象级别和低抽象级别上正在做什么的非常详细和有用的信息。PerfView聚合这些堆栈跟踪,并将它们显示在堆栈查看器中,该查看器具有强大的分组操作,使理解这些数据比大多数探查器简单得多。如果应用程序的性能问题与CPU使用率过高有关,那么PerfView将告诉您这一点,并为您提供所需的工具,以准确了解应用程序的哪些部分出现了错误行为。
6.一旦你在些之间针对性能问题收集了数据,你可以用PerfView分析ETL文件。该ETL文件会出现在左边的窗口,有收集日志或运行命令期间你提供的名字。通过双击该RTL文件,十来个独立的节点会和指代它们内容的名字一起出现。例如,你会在下图中看到跟踪信息、程序、事件、CPU堆栈。双击各个节点,适当的查看器会打开这些内容。
7.开始一次数据收集有两种方式,用运行命令启动一个程序或者用收集命令在计算机范围内收集数据。这些命令可以由收集下拉菜单下的GUI引发,或者从CLI或脚本中执行“PerfView run”或“PerfView collect”命令。下图显示运行命令tutorial。 exe时收集数据的过程,tutorial。 exe是一个内置的训练练习。
Perfview软件功能
1.一旦你在些之间针对性能问题收集了数据,你可以用PerfView分析ETL文件。该ETL文件会出现在左边的窗口,有收集日志或运行命令期间你提供的名字。通过双击该RTL文件,十来个独立的节点会和指代它们内容的名字一起出现。例如,你会在下图中看到跟踪信息、程序、事件、CPU堆栈。双击各个节点,适当的查看器会打开这些内容。
2.CPU调查:其中一个比较有用的事件(默认情况下是打开的)是'profile'采样事件。此事件每隔毫秒对计算机的每个CPU的指令指针进行采样。每个示例捕获当前正在执行的线程的完整调用堆栈;提供有关该线程在高抽象级别和低抽象级别上正在做什么的非常详细和有用的信息。PerfView聚合这些堆栈跟踪,并将它们显示在堆栈查看器中,该查看器具有强大的分组操作,使理解这些数据比大多数探查器简单得多。如果应用程序的性能问题与CPU使用率过高有关,那么PerfView将告诉您这一点,并为您提供所需的工具,以准确了解应用程序的哪些部分出现了错误行为。
3.在PerfView的stack viewer中查看自己的层次数据:PerfView的stack viewer功能强大,但也非常灵活。PerfView定义了一个非常简单的XML或JSON格式,可以读入这个查看器。这使您可以轻松生成数据,然后可以在PerfView强大的堆栈查看器中查看这些数据。
4.挂钟/阻塞时间调查:如果您的程序太慢,但它没有消耗过多的CPU,那么它必须被阻止等待其他东西(磁盘网络,…)。PerfView可以指示操作系统在线程睡眠或唤醒时记录事件,并有一个显示程序正在等待的位置。
Perfview使用说明
为了针对一个特定程序分析计算密集型性能问题,你将需要学习要调用的堆栈和函数。这可以通过双击左侧窗口中的"CPU堆栈"节点完成。接着你会得到提示来选择你感兴趣的程序。最后,该CPU堆栈查看器会在独立的窗口中打开,如下图QQ进程的信息 ,你可以确定调用了哪个函数以及它们的频率。
如果你仔细查看上面的例子,你会发现第一行显示<
PerfView是一个便于用户的工具,可以用来收集和分析ETW数据用于解决配置程序性能数据的问题。这个工具可以快速地显示为这个程序执行的操作系统函数,了解性能问题可能潜藏的位置。
Perfview更新日志
修复了一些严重bug
调整ui设计,优化视觉体验
新增了一些实用功能,提升了用户体验