- 7
- 0
- 约2.44千字
- 约 19页
- 2016-12-08 发布于贵州
- 举报
客户端性能试工具分析
客户端性能测试工具分析 2013-11-24 培训目的 了解客户端性能测试工具实现原理 android端工具开发的一些技巧 学会分析问题解决问题的基本方法 客户端性能测试需求分析 目前日常的客户端性能测试有以下种类(可能以后会增加): CPU、内存占用测试 流量消耗测试 电量消耗测试 IO测试 市面上已有工具对比 非定制化,冗余功能太多 测试数据难以收集,只能通过手动记录 测试结果仍需用户手动提取数据后,再手动绘制成图表,非常麻烦,导致增加大量不必要的工作量 自定义测试工具需求分析 能覆盖目前需要测试的种类 傻瓜式操作,能自动记录数据,能自动生成测试结果图表 针对可能新增性能测试种类的情况,工具可扩展性要好 监控原理分析 让我们来看各项性能指标的监控原理....... CPU、内存监控原理 CPU、内存监控原理: 总CPU信息获取:Android系统是基于Linux内核的,所以系统文件的结构和Linux下一样,系统总体CPU使用信息是放在/proc/stat/文件下 总CPU信息各项分析 user (480826) 从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负进程 nice (6665) 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间 system (236914) 从系统启动开始累计到当前时刻,处于核心态的运行时间 idle (7212750) 从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间 iowait (211630) 从系统启动开始累计到当前时刻,IO等待时间 irq (39) 从系统启动开始累计到当前时刻,硬中断时间 softirq (1876) 从系统启动开始累计到当前时刻,软中断时间 所以总CPU使用计算公式为: 总CPU时间:totalCputime=Long.parseLong(toks[2]) + Long.parseLong(toks[3])+ Long.parseLong(toks[4]) + Long.parseLong(toks[6]) + Long.parseLong(toks[5]) + Long.parseLong(toks[7])+ Long.parseLong(toks[8]) CPU空闲时间:idle=Long.parseLong(toks[5]) 单个程序CPU使用分析 读取/proc/PID/stat文件信息即可获得该PID对应程序的CPU信息 单个程序CPU使用各项分析 PID=15916 程序PID PackageName=d.process.acore 程序包名 utime=1026 该任务在用户态运行的时间 stime=2687 该任务在核心态运行的时间 cutime=0 所有已死线程在用户态运行的时间 cstime=0 所有已死在核心态运行的时间 单个程序CPU使用率:threadCpuTime=Long.parseLong(tok[13]) + Long.parseLong(tok[14]) + Long.parseLong(tok[15]) + Long.parseLong(tok[16]) CPU使用率算法 设定一个时间差,比如5s,取出六个值totalCputime1,totalCputime2,processCpuTime2,processCpuTime1, 单个程序的CPU使用率(%) = 100*(processCpuTime2-processCpuTime1)/(totalCpuTime2-totalCpuTime1) 内存占用监控原理 按照pid调用android的API获取当前被测应用占用的内存。 共有四种内存大小:VSS、RSS、PSS、USS VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存) 一般来说内存占用大小有如下规律:VSS = RSS = PSS = USS 使用Pss返回的消耗内存值和其它相应软件做对比是最接近 电量监
原创力文档

文档评论(0)