QQ浏览器性能提升之路——windows性能分析工具篇

admin 2025-11-25 阅读:20 评论:0
对普通用户而言,评判一款浏览器是否优秀,最直观的体验就是速度,但随着新功能的迭代,不断的开始有用户反馈浏览器开始变慢,这时候就需要进行性能优化了。而在Windows上面做性能相关的工作,WPT是个必备的神器。WPT的全名是Windows P...

对普通用户而言,评判一款浏览器是否优秀,最直观的体验就是速度,但随着新功能的迭代,不断的开始有用户反馈浏览器开始变慢,这时候就需要进行性能优化了。而在Windows上面做性能相关的工作,WPT是个必备的神器。WPT的全名是Windows Performance Toolkit,是Windows下用来进行性能分析的一套工具,它的功能非常强大,你可以使用它来监控CPU,内存,磁盘和网络等等的活动whatsapp官网,从而来确定当前系统的性能瓶颈。

WPT由两个独立的工具组成: Windows Performance Recorder (WPR) and Windows Performance Analyzer (WPA)。顾名思义,WPR记录Windows ETW产生的性能数据从而生成ETL文件,WPA则负责分析ETL文件。

安装和说明

你可以通过下载安装Windows ADK得到 Windows 性能工具包 (WPT) 。https://www.microsoft.com/zh-CN/download/details.aspx?id=39982

安装后几个比较重要的文件,默认路径在:C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit

tdxw.exe_WPT使用教程_Windows Performance Toolkit

工作原理

和其他的性能分析工具不同,WPT是由Windows本身的事件机制来提供支持的——Event Tracing for Windows (ETW)。

ETW是从Windows 2000开始就引入的一种高速的事件记录机制,自那时以后,各种Windows操作系统核心和服务组件都通过ETW记录其活动,它现在是Windows平台上的关键系统仪表技术之一。在Windows 7中,ETW得到了进一步的增强。 正是基于ETW的优秀性能和强大功能,越来越多的第三方应用程序开始放弃自己的日志系统,逐渐开始使用ETW来追踪和记录其状态和活动,从而进行性能调优或是进行应用程序的日常维护。

下图来自MSDN,ETW的主要基本架构分成4个部分:Provider,Controller,Consumer和Session。

WPT使用教程_tdxw.exe_Windows Performance Toolkit

通过ETW,我们可以将系统所有关键的地方都加入事件,记录其行为和堆栈whatsapp网页版,比如CPU执行,线程切换和读写磁盘,这样我们就可以利用这些信息来进行分析了。

更多的工作原理大家可以自行参考官方介绍。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363668(v=vs.85).aspx

如何开始

说这么多,究竟如何才能定位性能问题呢?

把大象放进冰箱需要三步:第一步,把冰箱门打开;第二步,把大象放进去;第三步把冰箱门带上。我们只需要两步:

1) 生成ETL文件先启动Xperf,这里只列了几个常用的参数。xperf -start SessionName -on Flags|Groups -f filename -maxfile Size -filemode Mode -stackwalk flags|@file

然后停止Xperf并生成ETL文件。xperf -stop -stop Usersesssion -d filename第一个stop停止kernel logging的记录,第二个stop停止名为Usersesssion的session,如果没有user session直接xperf -stop -d filename即可。

2) 分析ETL文件使用wpa打开ETL文件,或者通过Xperf、wpaexporter导成文本格式分析。

踩过的坑

Xperf的启动、配置、解析有很多参数,不是很容易上手,这里说下几个踩过的坑。

1) 版本问题:目前Xperf能下载到的版本有4.8 / 6.3 / 10.0,这几个版本的兼容性并不是很好,生成ETL文件后,一定注意要用同版本的Xperf、WPA或是XperfView去分析,用不同版本的话会有一些奇怪的问题,例如打开报错、看不到关键数据、闪退等等。

2) 如果你正在使用Process Monitor或Process Explorer,需要先关闭它们再启动Xperf,否则会报错,因为这两个工具也会通过ETW收集信息。

3) Win XP只支持老版本的WPT,也就是用WPT版本6(XPerf Version 4.8)捕获Trace。

4) Xperf的启动参数很多,开的越多带来的额外系统开销也会越多,ETL文件也会越大。所以一定要按需配置,有针对性的开启需要的providers。

Windows Performance Toolkit_tdxw.exe_WPT使用教程

5) 虽然我习惯了Xperf,但还是推荐大家优先尝试新版本里面的WPRUI,在易用性方面已经改善了很多。关于各个Scenario的含义,可以参考微软的官方文档。(当然他们写的很简略……)https://msdn.microsoft.com/zh-CN/library/windows/hardware/dn927307.aspx

WPT使用教程_tdxw.exe_Windows Performance Toolkit

6) 针对Xperf配置麻烦的问题我也封装了一个脚本,启动参数包含一些经常用到的providers,循环文件写入模式,支持Win7 / Win10 / XP。碰到可以复现的性能问题时,双击对应的bat脚本即可。也推荐同学们尝试,可以在附件里面下载。

Windows Performance Toolkit_tdxw.exe_WPT使用教程

7) 如果开启调用堆栈(call stacks)记录功能,得先有对应的providers flag,然后通过-stackwalk开启堆栈调用记录。下面这个例子记录sampling profiler call stacks。xperf -on PROC_THREAD+LOADER+PROFILE -stackwalk Profile在64位的Windows开启stackwalk的功能需要设置注册表DisablePagingExecutive。REG ADD "HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management" -v DisablePagingExecutive -d 0x1 -t REG_DWORD -f设置完成后需要重启操作系统才能记录调用堆栈。

高CPU占用实战

持续的高CPU占用是很常见的性能问题,为了方便重现,我们先借助小工具CPUSTRES.EXE模拟High CPU usage。软件打开后active所有的thread,并设置下activity为Max即可。

WPT使用教程_Windows Performance Toolkit_tdxw.exe

通过Process Explorer可以看到系统的CPU占用已经达到50%左右,大部分都是CPUSTRES造成的。

1、生成ETL文件

现在我们先通过上文中提到的脚本捕获一个有效的ETL文件。

在命令行窗口回车,脚本会自动生成ETL文件并压缩。

tdxw.exe_WPT使用教程_Windows Performance Toolkit

Windows Performance Toolkit_WPT使用教程_tdxw.exe

2、分析这个ETL文件

打开之后我们会发现WPA的左侧有很多的图,并且他们被分为几类:

Windows Performance Toolkit_tdxw.exe_WPT使用教程

展开Computation视图后,可以看到CPUSTRES.EXE的CPU Weight百分比和Process Explorer看到的一致whatsapp网页版,50%左右。

tdxw.exe_WPT使用教程_Windows Performance Toolkit

Symbols

没有符号文件的话,分析Xperf trace基本是找不到太多有用的信息的。

打开WPA的Configure Symbol Paths窗口

Windows Performance Toolkit_WPT使用教程_tdxw.exe

Windows Performance Toolkit_WPT使用教程_tdxw.exe

Symbol Path:srv*C:\Symols*http://msdl.microsoft.com/download/symbols;Y:\;http://msdl.microsoft.com/download/symbols是微软官方的symbol server,在load symbols后,WPA会把用到过的symbols文件下载到C:\Symbols,这样用到过的symbols文件只会下载一次。Path通过分号(;)隔开,对于用户自己的应用程序,需要在path里面加上对应版本的符号文件路径。SymCache PathWPA用SymCache文件来缓存PDB的符号信息,一旦ETL文件相关的PDB文件被缓存过,对这个文件重新加载符号文件会快很多。

Loading Symbols之后,可以看到微软自己的function stack都解析出来了,因为没有CPUSTRES.EXE的符号文件,我们看不到具体的调用栈,以及是哪个函数造成的如此高的CPU占用。

tdxw.exe_Windows Performance Toolkit_WPT使用教程

如果这是你自己的应用程序,通过加载符号文件后相信能够很容易从代码级别定位到问题所在。当然Xperf的trace并不是万能的,要想快速从众多的图表中找到关键信息,首先你得对要分析的性能问题有个基本的判断,是CPU问题、内存问题、启动时间过长还是启动失败等等。有了发力的点才能从ETL文件中定位出有效的信息,我们也可以结合Xperf或wpaexporter导出的文本数据做更多自动化方面的事情。

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

热门文章
  • 详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略

    详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略
    一、下载与安装WhatsApp WhatsApp是一款全球使用范围极广的即时通讯软件,不仅可以实现文本聊天,还能进行语音、视频通话WhatsApp中文版,发送文件等功能。由于众所周知的原因,国内用户想要下载和安装WhatsApp可能会遇到一些困难。不过,只要按照以下步骤操作,就能顺利完成WhatsApp的下载和安装。 首先,我们需要解决的是下载问题。由于WhatsApp在国内的应用商店无法直接下载,所以我们需要寻找其他的下载途径。Android用户可以选择到各大安卓市场搜索下...
  • 苹果IOS5.1.1机完美越狱

    苹果IOS5.1.1机完美越狱
    越狱工具下载:(需手动复制: http://bbs./read-htm-tid-4804612.html ) 详细的越狱教程: Absinthe 2.0.4的越狱方法与Absinthe 1.0的越狱方法完全一样,非常简单的“傻瓜一键式”。不过这里绿毒有说明,最好重新刷固件。支持越狱设备IOS5.1.1的固件下载地址请点击本站的IOS固件下载,看下图: 下载完固件之后,把设备连接iTunes,开始刷固件。你也可以选择不刷,但是在越狱的过程之中,新的系统在越狱时会比较的顺利,...
  • 电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹

    电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹
    1. 怎么找到微信聊天图片在哪个文件夹里 图片保存路径:/storage/emulated/tencent/MicroMsg/WeiXin/文件夹,这个是完整路径。而在文件夹中只需要找到/tencent/MicroMsg/WeiXinWhatsApp中文版,就可以了,前面两个文件夹是系统根目录。以下是保存及查找图片的方法步骤介绍。 第一步、找到桌面的微信APP,直接点击打开这个微信的APP。 2. 电脑微信图片保存在哪个文件夹 个人微信文件夹。 电脑版微信聊天的图片,都保存到...
  • Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式

    Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式
    Meta(最近更名为 Meta AI)悄然宣布,WhatsApp 将在 Windows 11 上放弃 UWP(WinUI)WhatsApp中文版,退回采用基于 Chromium 的容器。这意味着 WhatsApp 又回到了几年前的样子。由于 web.whatsapp.com 一直领先于 Windows 应用开发,它确实拥有一些新功能,但速度更慢,占用更多内存。 如果独立开发者因为无力维护所有平台的代码库而选择 Web 应用程序,那是一回事,但当像 Meta 这样价值万亿美元...
  • 小米下載WhatsApp的完整指南:安装与使用注意事项

    小米下載WhatsApp的完整指南:安装与使用注意事项
    综上所述,确保您的小米手机具备以上条件,将有助于您顺利下载和安装WhatsApp,享受便捷的通讯服务。在满足这些条件后,您就可以按照后续步骤进行WhatsApp的下载和安装。 2. 下载和安装WhatsApp的具体步骤 在小米手机上下载和安装WhatsApp的具体步骤相对简单,但需注意一些特殊情况。首先,确保你的手机系统已更新到最新版本,以保证最佳的兼容性。由于安卓手机商店内无法直接找到WhatsApp,你可以通过APKPure等第三方应用商店进行下载。打开APKPure应用...