常见的测试方法包括Monkey/UIAutomator类的常规压力测试,大数据/操作的峰值压力测试,长时间运行的稳定性测试等。

前提:

  测试准备:版本是纯净版本,不应该附加多余的log和调试用组件。

一,测试场景

1.当前新开发或改动的某项功能,包括功能开启前,运行,结束后等测试点。

2.另一类是整体性能,考察应用的常见场景,再综合使用下的性能指标,包括启动后待机,切换到后台,执行主要功能,以及反复执行个功能后。

二,测试重点:

1.包含了图片显示的页面

2.网络传输大量数据

3.需要缓存数据的场景

三,测试用例

1.结合场景比较操作前后或不同版本的内存变化

2.显示多张图片的前台进程

3.多个场景来回切换

4.长时间运行进程的内存增长

四,dalvik heap的常见问题

1.随着功能的反复执行,heap内存一只再持续增长,这种情况通常是出现了内存泄漏,适合用leak-canary等泄漏检查工具进行测试分析。

2.代码执行时出现了频繁的GC,heap alloc内存大幅度波动。这种情况通常时分配了许多临时变量或数组,随后又被迅速回收,这种情况再确定具体场景后适合使用heap viewer/allocation tracker工具来查看具体分配的对象。

3.每次启动应用后,heap内存相比以前版本稳定增长。这种情况通常出现再启动后待机或使用某功能后,可能时有新功能即代码改动引入的固定内存增长。这种情况适合获取heap dump后进行多版本或功能使用前后的对比,能够迅速找到增长原因。

4.heap alloc变化不大,但进程的dalvik heap pss内存明显增加。这种情况比较少见,时由于分配了大量小对象造成的内存碎片。

五,dalvik heap的原理

待完善

移动App性能评测与优化-Android内存测试 ,DVM原理的更多相关文章

  1. 移动APP性能评测与优化

    本文是<移动App性能评测与优化>的读书笔记. PS:说是读书笔记,其实就是摘录. 移动App的性能测试主要包括:内存使用情况.电量消耗.功能的流畅度等: 1. 内存 1.1 内存的主要组 ...

  2. 《移动App性能评测与优化》读书笔记

    第一章:内存   内存的主要组成索引: Native Heap:Native代码分配的内存,虚拟机和Android框架本身也会分配 Dalvik Heap:Java代码分配的对象 Dalvik Oth ...

  3. Android App性能评测分析-流畅度篇

    1.前言 在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多.一些下拉上滑.双指缩放快速打字 ...

  4. Android App 性能评测与调优

    要点: 1. 内存优化的目的以及工具介绍 2. Android APP 内存的主要问题分析与总结 3. UI 绘制原理以及量化工具 - UI 流畅度的主要问题分析以及 UI 绘制原理. 4. 如何获取 ...

  5. 移动App性能测评与优化1.4.4 多进程应用

    1.4.4 多进程应用 根据上一节中的描述,当一个进程结束后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担,共享库消耗的物理内存并不会减少.实际上,对于所有共享使用了这个库的应用,Pss ...

  6. 【App性能监控】:Android studio环境的搭建(以及遇到个各种坑)

    今天搭建app性能测试环境,使用的是android studio的Android Device Monitor抓取trace日志分析: 1,下载最新的android studio安装,这一步没啥问题: ...

  7. Android APP性能分析方法及工具

    近期读到<Speed up your app>一文.这是一篇关于Android APP性能分析.优化的文章.在这篇文章中,作者介绍他的APP分析优化规则.使用的工具和方法.我觉得值得大家借 ...

  8. Android 内存泄露测试数据处理--procrank,setprop,getprop(转)

    1.Android内存测试常用的几个概念. VSS--virtual set size 虚拟耗用内存(包含共享库占用的内存)RSS--Resident set size实际使用的物理内存(包含共享库占 ...

  9. android app性能优化大汇总(内存性能优化)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

随机推荐

  1. 【视频开发】【Live555】通过live555实现H264 RTSP直播

    前面的文章中介绍了<H264视频通过RTMP流直播>,下面将介绍一下如何将H264实时视频通过RTSP直播. 实现思路是将视频流发送给live555, 由live555来实现H264数据流 ...

  2. 八、spring生命周期之BeanPostProcessor

    BeanPostProcessor我们一般称为Bean的后置处理器,它与我们前面介绍的InitialingBean.init-method等一样,都是在bean的初始化时被调用,具体的用法我们在举例中 ...

  3. Windows中使用 Python 调用 Matlab 程序

    https://ww2.mathworks.cn/help/matlab/matlab_external/system-and-configuration-requirements.html http ...

  4. [转帖]PC虚拟化主流:KVM、XEN、OpenVZ详解

    PC虚拟化主流:KVM.XEN.OpenVZ详解 https://zhuanlan.zhihu.com/p/90920566 1.pc虚拟化——KVM KVM是完整的硬件虚拟化,可以在Windows ...

  5. 【转帖】PowerPC架构:IBM的一座金矿

    PowerPC架构:IBM的一座金矿 https://www.eefocus.com/mcu-dsp/365599 <处理器史话>之十五 2016-07-15 14:01 作者:付丽华预计 ...

  6. JXOI2018

    发现自己不会T3可以退群了 排序问题(组合.模拟) 可以发现Gobo Sort相当于在所有排列中随机选择一个,所以当第\(i\)个数出现次数为\(a_i\)时,期望的Sort次数就是\(\frac{( ...

  7. 全栈项目|小书架|服务器开发-Koa2 连接MySQL数据库(Navicat+XAMPP)

    为什么使用数据库 为什么需要数据库?-知乎 相比与文件系统,数据库具有以下优势: 高效率:查找效率高 高可用:可数据库共享 安全性强:数据不能随意修改 选择哪个数据库 数据库可以分为关系型数据库和非关 ...

  8. Disruptor分布式id生成策略

    需要的pom文件: <!-- 顺序UUID --> <dependency> <groupId>com.fasterxml.uuid</groupId> ...

  9. Delphi开发的数据库程序在C:\PDOXUSRS.NET生成文件,拒绝访问及读写权限

    Delphi开发的数据库程序在C:\PDOXUSRS.NET生成文件,拒绝访问及读写权限, "无法打开 PARADOX.NET.这个文件可以随便删除的,下次会自动产生. Permission ...

  10. Net文件递归查找并保存

    原理:遍历当前文件夹的子文件,保存遍历文件夹下的所有文件 主要方法(2个): //获取文件夹下的所有文件 并保存 string[] path = Directory.GetFiles(NeedFile ...