如何彻底消灭那些不可重现不定期闪现的bug

共 1999字,需浏览 4分钟

 ·

2022-05-20 16:31

说起卡顿,很多人都能说出个123:


主要是主线程阻塞。在开发过程中,遇到的造成主线程阻塞的原因可能是:


  • 主线程在进行大量I/O操作:为了方便代码编写,直接在主线程去写入大量数据

  • 主线程在进行大量计算:代码编写不合理,主线程进行复杂计算

  • 大量UI绘制:界面过于复杂,UI绘制需要大量时间

  • 主线程在等锁:主线程需要获得锁A,但是当前某个子线程持有这个锁A,导致主线程不得不等待子线程完成任务。

  • ......



但如果问题再深入一些


  • 应用上线后程序频繁出现卡顿,如何定位问题?

  • 当遇见OOM时,如何定位到真正导致内存溢出的原因?

  • 如何在不影响性能的同时实现线上性能监控?


卡顿是用户可以直观感受到的,但开发者如果想要揪出导致卡顿的元凶,这个过程往往都比较曲折。很多卡顿非常狡猾,例如不可重现的卡顿,经常出现在用户的使用过程中,这种卡顿往往跟机器性能,手机环境,甚至是操作偏好等因素息息相关。我们平时从用户反馈的“好卡呀”这种描述中很难直接洞察到卡顿的根源。甚至有些连卡顿的场景都不知道,很难准确重现,所以这种卡顿容易让人摸不着头脑。









而内存作为程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生 OOM(out of memory)崩溃。我们需要在各种机器资源上保持优秀的流畅性和稳定性,相比UI界面优化、电量优化等,内存优化才是性能优化中的命门所在。


为了帮助大家更好地掌握性能优化技能,早日成功拥抱高薪,在这里给大家分享一份腾讯大佬历时三个月整理出来的《Android性能优化-大厂实战全解析》我们可以看下已经在大厂中的开发者,对于性能优化有着怎样的心得:


目录

腾讯团队


  • 腾讯光影研究室—Android P之Smart Linkify

  • 腾讯Bugly—动态下发 so 库在 Android APK 安装包瘦身方面的应用

  • QQ音乐—彻底弄懂浏览器缓存策略

  • QQ音乐Android编译提速之路

  • 全民k歌适配arm64-v8a方案

  • 全民K歌内存篇1——线上监控与综合治理

  • 全民K歌内存篇2——虚拟内存浅析

  • 全民K歌内存篇3——native内存分析与监控

  • 腾讯Bugly—对字符串匹配算法的一点理解

  • ......




字节团队

  • 字节跳动技术团队— 深入理解Gradle框架之一:Plugin,Extension, buildSrc

  • 字节跳动技术团队—深入理解gradle框架之二:依赖实现分析

  • 字节跳动技术团队—Scene:Android 开源页面导航和组合框架

  • 字节跳动技术团队—AwCookieManager.nativeGetCookiecrash 排查

  • 字节跳动技术团队—另类 BadTokenException 问题分析和解决

  • 字节跳动技术团队—抖音包大小优化-资源优化

  • 字节跳动技术团队—二维码扫描优化

  • 字节跳动—Android Camera内存问题剖析

  • 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%

  • 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%(二)

  • 抖音 Android 性能优化系列:Java 内存优化篇

  • 今日头条 Android ‘秒’ 级编译速度优化

  • ......


阿里团队

  • 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」

  • 支付宝 App 构建优化解析:通过安装包重排布优化 Android 端启动性能

  • 支付宝 App 构建优化解析:Android 包大小极致压缩

  • 解决支付宝包体积优化的遗留问题:运行时获取dexpc

  • 闲鱼技术—曾梦想 if-else 走天涯?看看“责任树模式”优化

  • 闲鱼如何在2个月内实现Android启动速度翻倍的?

  • 高德技术—Android Native 内存泄漏系统化解决方案

  • 天猫精灵技术—史上最全Android渲染机制讲解(长文源码深度剖析)

  • ......


百度团队

  • 百度APP-Android H5首屏优化实践

  • 百度App技术—一种简单优雅的TextView行间距适配方案

  • 百度App技术—Android 10分区存储介绍及百度APP适配实践

  • 百度App技术—Gradle 与 Android 构建入门

  • 百度App组件化之路

  • 百度App网络深度优化系列《三》弱网优化

  • ......


网易团队

  • 网易新闻客户端 H5 秒开优化

  • 网易新闻构建优化:如何让你的构建速度“势如闪电”

  • 网易传媒技术团队—AOP技术在客户端的应用与实践

  • 网易大数据|互联网产品决策秘笈: AB测试

  • ......


美团团队

  • 美团技术团队—Android静态代码扫描效率优化与实践

  • 美团技术团队—Probe:Android线上OOM问题定位组件

  • 美团技术团队—移动端UI一致性解决方案

  • 美团—设计稿(UI视图)自动生成代码方案的探索

  • …...

  • …...


扫码即可领取





浏览 29
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报