移动App性能测评与优化1.2.3 示例

简介:

1.2.3 示例

1.1节已经介绍了出现内存泄漏时的问题及分析方法,在这里我们再以一个真实的例子介绍常见的几种内存问题和分析方法。

这是发生在手机管家4.x的某个版本上的案例,新版中加入了一些功能,开发人员估计新功能可能会分配几万字节到几十万字节的内存,因此我们来进行内存方面的测试验证。当新功能的代码合入后,我们发现应用启动后的内存增长超过了2MB,这可大大超出了所有人的预期,一定是有什么地方出了严重的问题。

由于新加入了好几个功能,因此要逐个去排查。如果某个新功能的代码都在同一个package下,那么就可以使用MAT的过滤功能来验证这部分代码是否使用了内存,如图1-7所示。

 

图1-7 使用MAT的过滤功能

经过一番筛选排查,发现内存中多出了一些新对象,多消耗了约300KB内存,目前这并不能解释内存增长了2MB的原因。但仔细检查多出来的对象并清理掉不用的部分也是有帮助的。

经过检查,这部分内存是其他新功能使用的。对此我们需要进一步确认,这些对象是否是有用的,还是临时创建的。对于临时创建不再使用的对象可以主动销毁,而对于保存着信息将要用到的对象也可以进行进行压缩裁剪,以进一步减少占用的内存。

在以上排查中,我们确实发现了一些问题,但将一些不用的对象清理后再执行测试,总体内存并没有明显减少。现在看来,Dalvik Heap里分配的内存并没有增加许多,说明问题是不能只在Dalivk Heap里就能解决的,也许是别的部分出现了问题?接下面我们就继续深挖下去。

相关文章
|
3月前
|
JSON Dart 安全
Flutter App混淆加固、保护与优化原理
Flutter App混淆加固、保护与优化原理
49 0
|
3月前
|
架构师 Java
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
52 0
|
7月前
App Inventor 2 列表选择框(ListPicker)用法示例
详解App Inventor 2 列表选择框(ListPicker)的用法示例。AppInventor列表选择框,AppInventor2列表选择框,用法示例。
145 0
App Inventor 2 列表选择框(ListPicker)用法示例
|
6月前
|
Web App开发 数据安全/隐私保护 iOS开发
app优化ios,iOS app上架流程问题集锦,ASO新手小白必看(上)
app优化ios,iOS app上架流程问题集锦,ASO新手小白必看(上)
|
3月前
|
存储 缓存 算法
jvm性能调优实战 - 34十万QPS的社交APP 如何优化GC性能提升3倍?
jvm性能调优实战 - 34十万QPS的社交APP 如何优化GC性能提升3倍?
57 0
jvm性能调优实战 - 34十万QPS的社交APP 如何优化GC性能提升3倍?
|
4月前
|
JSON Dart 安全
Flutter App混淆加固、保护与优化原理
在移动应用程序开发中,保护应用程序的代码和数据安全至关重要。本文将探讨如何对Flutter应用程序进行混淆、优化和保护,以提高应用程序的安全性和隐私。
|
7月前
|
网络协议 安全 数据安全/隐私保护
直播app源码,QUIC协议:改善性能与安全性
由于QUIC协议作为一个多种协议集成的一项新型协议创新,被应用到直播app源码平台中,能帮助平台提高性能与安全性,提供给用户更可靠、更优质的直播体验。
直播app源码,QUIC协议:改善性能与安全性
|
10月前
|
JavaScript
Vue3.0项目——打造企业级音乐App(二)图片懒加载、v-loading指令的开发和优化
Vue3.0项目——打造企业级音乐App(二)图片懒加载、v-loading指令的开发和优化
126 0
|
11月前
|
前端开发 API 图形学
元宇宙虚拟社区交友软件APP开发规则详情及源码示例
元宇宙虚拟社区交友软件可以使用开源框架搭建,如React Native,Unity或者Xamarin等,也可以使用现有的虚拟化平台如 OVH、River, RuXen, XSquaredClipse, Shenandoah Valley等。
|
11月前
|
算法 数据可视化 搜索推荐
数据如何指导决策:优酷主客APP播转率的C端优化
数据如何指导决策:优酷主客APP播转率的C端优化
231 0

热门文章

最新文章