移动App性能测评与优化1.6 本章小结

简介:

1.6 本章小结

在这一章里,我们通过对几个案例的分析,基本了解了Android应用的各种内存组成,以及这些成分是如何被消耗的,也总结出了一些节约和优化内存的经验。在这一小节里我们把经验都列出来供读者参考。

内存的主要组成索引:

Native Heap:Native代码分配的内存,虚拟机和Android框架本身也会分配

Dalvik Heap:Java代码分配的对象

Dalvik Other:类的数据结构和索引

so mmap:Native代码和常量

dex mmap:Java代码和常量

内存工具:

Android Studio/Memory Monitor:观察Dalvik内存

dumpsys meminfo:观察整体内存

smaps:观察整体内存的详细组成

Eclipse Memory Analyzer:详细分析Dalvik内存

测试经验:

MAT是探索Java堆并发现问题的好帮手,能够迅速发现常见的图片和大数组等问题。

仅靠MAT提供的功能也不是万能的,比如内存碎片问题就隐藏在对象的地址中。

要测试非Dalvik部分,有必要了解Linux的进程和内存原理、内存共享机制,熟悉常用命令行工具。

内存分配的最小单位是页面,通常为4KB,这个限制往往会引发各种碎片问题。

碎片不仅仅是Dalvik内存,包括各种文件的mmap也有可能产生碎片。

性能优化:

尽量不要在循环中创建很多临时变量。

可以将大型的循环拆散、分段或者按需执行。

引入SDK库和调用新的系统API时需要考虑成本。有可能一些不常用的功能会导致大量的消耗。这时候有可能需要多进程方案,将这些影响内存的操作放入临时进程执行。

除了Dalvik堆内存,还有其他类型的内存在了解了原理后也能够进行分析和优化。

dex文件有很多优化空间。在仔细统计并调整了dex文件的顺序后,往往能够节约1MB以上的mmap内存。

相关文章
|
3月前
|
JSON Dart 安全
Flutter App混淆加固、保护与优化原理
Flutter App混淆加固、保护与优化原理
50 0
|
3月前
|
架构师 Java
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
52 0
|
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倍?
63 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指令的开发和优化
128 0
|
11月前
|
算法 数据可视化 搜索推荐
数据如何指导决策:优酷主客APP播转率的C端优化
数据如何指导决策:优酷主客APP播转率的C端优化
231 0
|
数据采集 缓存 数据可视化
APP性能测试方法&工具
APP性能测试方法&工具
《圆桌讨论: 从趋势、工具或相关的技术点谈APP的优化》电子版地址
圆桌讨论: 从趋势、工具或相关的技术点谈APP的优化
48 0
《圆桌讨论: 从趋势、工具或相关的技术点谈APP的优化》电子版地址