1、问题现象描述

收到线上反馈,打开我们的app后通常会白屏几秒后才显示页面,如下图所示

2、采集trace信息

通过Windows Performance Recorder工具收集了trace信息,有关该工具的获取和介绍:https://docs.microsoft.com/en-us/windows-hardware/test/wpt/windows-performance-recorder,生成的trace文件如下:

3、分析trace

分析trace即使用Windows Performance Analyzer工具,有关该工具的获取和介绍:https://docs.microsoft.com/en-us/windows-hardware/test/wpt/windows-performance-analyzer

3.1、首先查看各个进程生命周期是否正常
通过wpa的进程生命周期可以看到,软件主进程(10256)在启动2s后,渲染进程(5112)也正常启动,且之后没有出现进程挂掉的情况,其它进程的生命周期也正常。

3.2、再查看系统cpu是否正常
只有刚启动1s左右的时间轻微上涨,正常。

3.3、因为是白屏问题,重点查看render进程是否有主线程被阻塞的情况
重点看渲染进程(5112)的主线程切入到运行态的时间点

发现异常的时间点,上一次在第5秒切入之后在第10s才被再次切入,切入和切出时间间隔都很短,也就是说应该是在wait什么东西导致了5-10s之间的阻塞

加载符号后可以查看到第10s切入时主进程在做啥

加载符号完成后,看到的调用栈如下,一条来自gpu的消息导致了该线程的wait,这里有个问题是为什么要看第10s的栈而不是第5s的栈,因为这个栈记录的是线程被唤醒的瞬间(wait中)的栈。

再去看看gpu进程(10016)的主线程在第5-10秒这段时间在干啥,可以看到有多次切入时间差1s的情况,且切出时间和切入时间的差值(线程占用cpu的时间)是正常的,所以应该也不是再执行耗时任务而是再等什么东西。

查看第1、2、3处的被唤醒时的函数调用栈,都是因为条件等待导致的wait,这里是在等某个线程处理完事情将它唤醒。

我们再看看它是被谁唤醒的,可以看到是14572号线程、2576号线程、9436号线程

再看看这三个线程这几个时间戳前后在做啥

首先看14572线程在第4s-第5s的有无异常间隔的切入时间点的栈,发现有,展开调用栈看到第三方函数库(MozartBreathCore)注入,并且最终是在第三方的dll中调进了wait

同样的,看2576线程在5-6、6-7、7-8、8-9左右的异常的switch in时间戳和switch out的时间戳,可以发现切出与切入时间差(占用cpu的时间)不高,但是上一次切入和这次切入出现多次间隔1s的情况,也是在wait什么东西。

展开这几次函数的调用栈,看到了基本上都有第三方函数库注入,并且最终是在第三方的dll(MozartBreathCore)中调进了wait。

通过在image模块看到了我们的app被注入的dll文件所在路径

上网搜索路径中的LVUAAgentInstBaseRoot这个文件夹即可知道Mozartxxxx库和第三方软件UniAccess:https://www.leagsoft.com/doc/article/1027.html相关
网上搜cwnep.sys,得到和软件Websense Data Endpoint有关:http://systemexplorer.net/file-database/file/cwnep-sys(本来以为这个文件也属于UniAccess,但是卸载掉UniAccess还是白屏)
UniAccess和Websense Data Endpoint都卸载后,恢复正常。

WPA之一次第三方软件导致的白屏问题分析相关推荐

  1. 前端--导致页面白屏的原因

    JS问题 常用框架Vue React Angular都是依靠JS进行驱动, 并且单页面的应用html也是依靠JS生成,在渲染页面的时候需要加载很大的JS文件,在JS解析加载完成之前无法展示页面,从而导 ...

  2. Android之解决APP奔溃重启导致Fragment白屏问题

    1.问题 问题APP奔溃重启导致依附的Fragment白屏问题 2.分析 app奔溃重启Activity肯定更新了,但是依附在Activity里面的fragment有缓存,用的是以前的activity ...

  3. vue导致页面白屏几种情况

    1.vue项目打包后,在非首次线上替换dist文件时,某些手机/浏览器在之后首次打开页面,可能出现白屏情况. 原因:在使用vue-cli脚手架构建完项目,项目完成后,需打包上线.默认打包方式则是 np ...

  4. android启动白屏的分析,Android 启动白屏,跳转黑屏以及冷启动优化

    一,白屏 现象:启动app,白屏一段时间后才出现欢迎页android 解决:shell 1,添加styleapp true 或者ide @mipmap/welcome 其中@mipmap/welcom ...

  5. object overview page打开后白屏问题分析

    Created by Jerry Wang, last modified on Sep 10, 2014 打开Object overview page后白屏: 给PRDIOOV添加如下的navigat ...

  6. Android5.0L因SystemUI ANR导致的黑屏问题分析

    一.问题现象 1.用户直观看到的现象是黑屏. 2.出问题时StatusBar.NavigationBar和墙纸消失. 3.大部分发生在FOTA重启之后,出现概率很低. Platform:MSM8916 ...

  7. Android hibernation 导致的冻屏问题分析

    客户售后维护项目报出用户手中机器在过开机向导时概率冻屏重启的问题,问题非常严重,客户投诉 疑点一: 此批次的机器早已出货,陆续售卖,为何在一个特定时间7/15号开始报出问题,之前为什么没有? 疑点二: ...

  8. SAP Spartacus本地启动时的白屏问题分析

    SAP Spartacus版本: ng serve --open Chrome开发者工具console里看到错误消息: https://spartacus-dev0.eastus.cloudapp.a ...

  9. 客户端突如其来的“白屏”等待该如何解决?

    简介:一起由离线包重构引起的"白屏"等待现象的排查和解决案例 --本文选自<阿里云SRE技术期刊>2021年02月刊 移动端的混合架构模式给 App 开发带来了崭新的空 ...

  10. mPaaS 客户端问题排查之突如其来的“白屏”等待

    简介:mPaaS 客户端问题排查之突如其来的"白屏"等待 移动端的混合架构模式给 App 开发带来了崭新的空间,通过 H5 构建的业务模块可以实现高效快速的版本迭代,满足多样化的业 ...

最新文章

  1. PyTorch数据加载处理
  2. 如何用hover写出顺畅的动态效果
  3. c++服务器开发学习--01--c++基础,socket
  4. informix11.7界面入门工具
  5. Android学习笔记篇2. 单选按钮、复选按钮
  6. android系统应用功能,Android系统应用(12)
  7. 年味PSD素材|非常喜庆吉祥手工剪纸
  8. 基于node.js的express连接数据库
  9. 7. 如何创建 CSS
  10. php 斜杠日期 转日期,php日期转时间戳 指定日期转换成时间戳
  11. win7桌面工具无法连接服务器,小编为你讲讲win7系统桌面天气小工具提示无法连接服务的解决方案...
  12. Unity2018发布webgl视频无法播放
  13. Android butterknife黄油刀使用大全
  14. MUSCI算法估计空间方位角
  15. C语言关于变量定义未使用编译警告warring
  16. 星起航:抖音小店体验分低怎么办,如何提高店铺体验评分?
  17. JAVA XML转对象 对象转XML
  18. 国际网址导航系统thinkphp5源码
  19. 机器学习——长短期记忆(LSTM)
  20. ie退出全屏快捷键_讲解win7电脑全屏快捷键介绍

热门文章

  1. 易基因|m6A甲基化修饰在神经元发育和成体神经形成中的作用研究:文献科普
  2. 内存带宽stream测试
  3. TapTap 发布游戏
  4. excel两列数据对比找不同_Excel找出不同数据
  5. word整个表格首行缩进_WORD取消表格首行缩进
  6. 图解密码学密钥的分配方式
  7. android dex2oat 编译,dex2oat代码阅读笔记
  8. 判断图同构大杀器---nauty算法
  9. SpringBoot四种读取properties文件的方式
  10. PS2022安装步骤 ps 2022(详细安装方法)