首页
学习
活动
专区
工具
TVP
发布

Android内存性能测试

前言 Android应用大部分性能问题归根结底都会成为内存问题,今天我们就先以Out of Memory(OOM)为起点介绍一下Android内存原理以及排查内存问题方法。...除了减少内存申请回收外,更重要是减少常驻内存和避免内存泄漏,说起内存泄漏,就必须要提Activity内存泄漏。...现在我们来归纳一下,内存问题主要包括常驻问题(主要是图片缓存)、泄漏问题(主要是Activity泄漏)、GC问题(关键是GC For Alloc),后果会导致App Crash、闪退、后台被杀、卡顿,而且这是各种资源类性能问题积压最后一环...getting_started/ 这里主要想讲一下如何自动收集leakcanary检测出内存泄漏信息,因为在日常测试和开发过程中,即便客户端接了内存泄漏检测工具,但也只是作为一个debug工具,很难系统看出某个版本应用内存泄漏情况是如何...首先新建一个LeakUploadService类,用来格式化内存泄漏详情以及上传到日志服务器便于快速定位,具体代码如下: public class LeakUploadService extends DisplayLeakService

1.5K10

Android 性能测试内存性能内存泄漏篇

性能测试-内存性能内存泄漏篇 数据源 APP占用内存测试,要比CPU更为简单。App memory数据来源是dumpsysmeminfo。...Android程序内存主要是两部分:native和dalvik,dalvik就是我们平常说java堆,我们创建对象是在这里面分配,而bitmap是直接在native上分配,对于内存限制是native...只要数据曲线不是如下图中灰色平缓曲线,则可以证明该场景是有内存泄漏。 图三 内存泄漏示意图 同样,如果只提供上述曲线给开发,定位问题也会比较麻烦,测试内存泄漏测试中,也可以多做一些。...图四DDMSdump内存 拿到hprof文件后,可以导入Android Studio中查看,一般查看Retained Size占用最大类,分析是否有内存泄漏,一个对象 Shallow Heap, 指的是该对象自身占用内存大小...笔者目前水平止步于此,后续将继续深入学习内存泄漏测试相关内容。 文章来源于:腾讯移动品质中心 TMQ

2.5K00
您找到你想要的搜索结果了吗?
是的
没有找到

【 Android 场景化性能测试内存性能内存泄漏篇

作者:陈帅团队:腾讯移动品质中心TMQ 一、数据源 APP占用内存测试,要比CPU更为简单。App memory数据来源是dumpsys meminfo。...只要数据曲线不是如下图中灰色平缓曲线,则可以证明该场景是有内存泄漏。...[1509070479432_1215_1509070714109.png] 图三内存泄漏示意图 同样,如果只提供上述曲线给开发,定位问题也会比较麻烦,测试内存泄漏测试中,也可以多做一些。...占用最大类,分析是否有内存泄漏,一个对象ShallowHeap,指的是该对象自身占用内存大小。...篇幅有限,还有很多深入内容无法一一铺陈,后续将继续深入学习内存泄漏测试相关内容。 搜索微信公众号:腾讯移动品质中心TMQ,获取更多测试干货!

1.7K10

Web 性能测试-内存泄漏测试方法之chrome内存快照

首先明确一下我们测试目的:客户端浏览器js内存是否存在泄漏,服务器端的话可不是这么测,防止用户使用时浏览器卡顿或崩溃。 F12打开开发者工具,选中Memory页签下Heap snapshot。...测内存泄漏就是看我们做了一些操作前后内存变化,比如我们在重复做查询操作,每次操作后快照都会增加几兆或更多,这就说明可能是存在内存泄漏。...注: 你做不同事,内存增长不一定是内存泄漏哦,他可能是正常加载一些必要东西占用内存而已。总之就是做这一种事只需要固定那么多内存,要是每次都新增加了一些内存,说明加载东西重复了。...可能是之前不用内存没释放,或是新加载了一些没用内存。...快速测试内存泄漏 每次我们都要做快照的话如果内存大的话快照是比较慢,快照主要是开发来对比找问题用,我们测试只需要发现问题就好了。

5.5K20

内存分配器性能测试

在C/C++里,自己动手实现内存分配器是很常见事情,写过几年C/C++程序的人可能都做过这样事情。这其中很重要一个原因是C/C++不支持垃圾回收。...但是既然go语言已经支持垃圾回收,还有必要自己去写一个内存分配器吗?我们做一个简单测试看看结果怎么样。...测试平台: OS: ubuntu 12.04 x86_64 CPU: i5 2.27G MEMORY: 8G // ben1.go 自己实现内存分配器 package main type Pool struct.../ben2 测试结果: 次数 ben1(s) ben2(s) 1 0.308 2.057 2 0.304 2.048 3 0.308 2.093 平均 0.307 2.066 结论: 可以看到,自己实现内存分配器执行时间大约是系统内存分配器十分之一...但是对于自定义内存分配器,还需要注意多goroutine下同步问题。

1.2K60

Java直接内存与非直接内存性能测试

对于直接内存来说,JVM将会在IO操作上具有更高性能,因为它直接作用于本地系统IO操作。而非直接内存,也就是堆内存数据,如果要作IO操作,会先复制到直接内存,再利用本地IO处理。...但是,不要高兴太早。文档中也说了,直接内存使用allocateDirect创建,但是它比申请普通内存需要耗费更高性能。不过,这部分数据是在JVM之外,因此它不会占用应用内存。...所以呢,当你有很大数据要缓存,并且它生命周期又很长,那么就比较适合使用直接内存。只是一般来说,如果不是能带来很明显性能提升,还是推荐直接使用堆内存。...可以总结下,直接内存使用场景: 1 有很大数据需要存储,它生命周期又很长 2 适合频繁IO操作,比如网络并发场景 申请分配地址速度比较 下面用一段简单代码,测试下申请内存空间速度: int...在数据量提升时,直接内存相比于非直接内存申请 有十分十分十分明显性能问题!

1.4K50

性能测试-Jmeter服务器性能监控

春节到了,今年最后一篇。 最近很火“病毒”,搞得人心惶惶。大家记得戴口罩啊。新一年:祝大家事事顺心,阖家欢乐,心想事成!...其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端,ServerAgent是服务端。...前三个是jmeter扩展插件,解压后将jar拷贝包到jmeterlib/ext目录下,最后一个是服务器监控插件,解压到服务器上。...将ServerAgent-2.2.1.zip解压后放在需要监控服务器上,并执行chmod 777 startAgent.sh 赋权..../startAgent.sh 执行 重启jmeter即可 (依据自己脚本,选择需要使用~~ 我主要是用到了监听器中一些图形报告:吞吐,响应时间,服务器资源监控) 三、开启监控 ?

2.5K20

memtier_benchmark内存性能测试利器

// memtier_benchmark内存性能测试工具 // 最近在测试英特尔傲腾可持久化内存,使用到了memtier_benchmark这个工具,在使用这个工具时候,遇到了一些问题,我简单总结了一下...memtier_benchmark是类似redis-benchmark内存测试工具,但是它又不仅限redis测试,还可以覆盖memcache,它提供了丰富选项和报表功能,能够产生各种各样流量模拟...memtier_benchmark安装方法还是有必要了解下,因为我自己安装时候出现了一些小问题,这里给出一个经过测试安装过程: 1、准备工作 ## 安装编译环境 yum install -y autoconf...-s --server:代表服务器地址,默认localhost -p --port:代表端口,默认为redis6379端口 -x --run-number:代表完整测试重复次数 --client-stats...32字节到512字节 --data-size-list:这个参数比较关键,它可以帮助你去对key值大小进行配比,按照一定比例去模拟key值,关于这个参数,手册上没有很清楚讲述,也是查看了日本一位作者测试报告才看到

4.1K20

APP性能测试内存使用率

Android 内存测试 获取设备内存信息 在Linux操作系统中,/proc是一个位于内存伪文件系统(in-memory pseudo-file system)。...Dex文件有索引区和Data区 Other mmap 其它文件占用内存 自动化获取性能数据 前面我们使用adb命令获取CPU,内存性能数据,但是如果想批量获取性能数据,使用命令一个个查询会非常不方便...self.counter - 1 time.sleep(3) def SaveDataToCSV(self,data_type): ''' 存储性能测试数据...内存泄漏会因为减少可用内存数量从而降低设备性能。 Android 内存泄漏测试可以在APP中集成LeakCanary进行测试。...内存测试 Instruments内存分析 打开Instruments 然后选择 Leaks进入主界面,选择测试设备和测试应用点击开始执行,底部菜单选择CallTree(如下图),并在底部勾选hide System

3.9K31

性能测试篇 :Jmeter监控服务器性能

本文介绍使用jmeter监控服务器性能 (记得收藏,转发哦) jmeter也可以像loadrunner一样监控服务器CPU、内存性能参数,不过需要安装一些插件 1、下载需要jmeter插件 ?...: 记录客户端发送请求完成后,服务器端返回请求之前这段时间 jp@gc-ReponseTimesDistribution: 显示测试响应时间分布,X轴显示由时间间隔分组响应时间,Y轴包含每个区间样本数...5、准备测试脚本 这里用到一个登陆测试系统简单脚本做压力测试demo ?...关于压力测试实例请参考文章《JMeter压力测试实例操作》 6、配置监控服务器性能参数组件 主要用到这个组件: jp@gc-PerfMonMetricsCollector,配置如下: ?...8、图表可导出成csv文件,配合聚合报告,分析服务器性能状况 ? ?

4.3K21

服务器基准性能测试

服务器基准测试测试说明:基准测试是指通过设计科学测试方法、测试工具和测试系统,实现对一类测试对象某项性能指标进行定量和可对比测试;云服务器基准测试主要是相同软件版本下不同硬件性能对比测试。...测试工具: 图片网络性能测试带宽性能(TCP)性能指标:测试网络吞吐速率测试工具:netperfcentos# 下载netperfwget -O netperf-2.7.0.tar.gz -c https...参数备注:P: 要运行并行客户端流数量,服务器关闭之前保持连接数,一般等于网卡队列数。默认是0,这意味着永远接受连接。...——服务器发送,客户端接收f: 选择输出bandwidth单位 指定打印带宽数字格式字母。...:测试redis在set和get请求下OPS、平均响应时间和每秒写入数据大小,同时关注其测试过程中cpu、内存和带宽使用情况测试工具:memtier_benchmark安装命令:1.

5K40

腾讯TMQ在线沙龙|android内存性能测试

Android内存性能测试 活动时间:2016年10月31日 QQ群视频交流 活动介绍:TMQ在线沙龙第十一期分享 本次分享主题是老司机给大家分享android内存性能测试。...有多年前后台性能测试经验。...2、提问:如果测试内容是某个SDK,该如何着手设计? 答:1).通常是单独写一个测试应用,以排除其他可能干扰项。调用sdk模拟实现一些功能并进行测试,得到性能数据。...6、提问:请问我们想将内存性能测试应用于monkey自动化测试中,执行monkey压测时候,能收集到手机内存变化数据,让我们在monkey运行完成之后画出相应内存变化曲线。...15、提问:android 内存性能分析,一般在项目的什么阶段开展比较合适 答: 性能测试分析时间成本可能较高,一般是在集成阶段。如果能够自动化采集性能数据,可以提前一些。

1.6K60

Linux服务器性能压力测试

对于新采购服务器,需要进行有必要性能测试。这里选择UnixBench工具进行性能测试。...记录如下: 1)安装使用 下面的脚本使用了最新版UnixBench5.1.3来测试,注释了关于graphic测试项(大多数VPS都是没有显卡或者是集显,所以图像性能无需测试),运行10-30分钟后(根据...======= "; echo ''; echo ''; echo ''; 二、测试结果 执行后返回测试结果类似如下(该性能测试脚本大概会运行10-30分钟,需耐心等待测结果): [root@test-vm001...process creation 关注点是新进程进程控制块(process control block)创建和内存分配,即一针见血地关注内存带宽。...(1 concurrent) 1 2 3 Shell Scripts (8 concurrent) 1 2 3 Shell Scripts (16 concurrent) 1 2 3 可以对多台服务器性能进行如上测试

8.6K70

性能测试 -- 服务器参数调整

cat /etc/issue cat /etc/redhat-release 4)查看网卡配置 cat /proc/net/bonding/bond0 mii-tool -v 5)优化Sysctl,提升服务器性能...: vim /etc/sysctl.conf 这个文件加上以下这些参数,然后执行sysctl -p更新 net.ipv4.tcp_max_syn_backlog = 4096 #每个网络接口接收数据包速率比内核处理这些包速率快时...,允许送到队列数据包最大数目 net.core.netdev_max_backlog = 2048  #每个网络接口接收数据包速率比内核处理这些包速率快时,允许送到队列数据包最大数目 net.ipv4...= 10 #硬盘swap交换分区数设置,提高内存使用 net.core.somaxconn = 1024 #用来限制监听(LISTEN)队列最大数据包数量,超过这个数量就会导致链接超时或者触发重传机制...2090,3060,3080,8060,8080,8081,8082,9000,9080,9090,10029,22223-22323 vm.dirty_background_bytes = 104857600 #控制内存占用阈值

1.6K70

Nginx缓存区内存配置大小对性能测试影响

现象:Nginx与应用都在同一台服务器(4g内存、4核cpu)上,nginx缓存区内存配置1g,开启nginxaccesslog,跑图片终端页性能脚本,观察到accesslog里面有90%以上MISS...状态,nginx缓存没有起到作用,加大nginx缓存内存为2g,清了缓存再次跑性能脚本,accesslog中MISS状态仍占大部分,且应用服务器内存空间基本被用完。...解决:将nginx与应用分开,nginx放在一台服务器上,应用包搬到另一服务器(6g内存、8核cpu)上,跑图片终端页脚本,nginx缓存区内存配置2g,观察到响应提上去了,accesslog里HIT状态占...主要原因:nginx缓存区设置1G时不够用,没起到作用。当调整到2G时,由于服务器上还存放应用也占了内存,另外系统也需要资源,导致nginx所配置2G内存没起作用。...当把nginx和应用分开时,资源都充足了,这时nginx缓存区也能起到作用。

1.2K20

如何测试腾讯云服务器网络性能

网络性能测试指标 [fuwuqixingneng001.png] 工具基本信息 [fuwuqixingneng002.png] 搭建测试环境 准备测试机器 镜像:CentOS 7.4 64 位 规格:...S3.2XLARGE16 数量:1 服务器购买地址: 腾讯云:http://cloud.tencent.com/act/pro/voucherslist 假设测试机器 IP 地址为10.0.0.1。...带宽测试 推荐使用两台相同配置服务器进行测试,避免性能测试结果出现偏差,其中一台作为测试机,另一台作为陪练机。本示例中指定10.0.0.1与10.0.0.2进行测试。...测试机端 iperf -s 陪练机端 命令: iperf -c ${服务器IP地址} -b 2048M -t 300 -P ${网卡队列数目} 实例: iperf -c 10.0.0.1 -b 2048M.../netperf -H 10.0.0.1 -l 300 -t TCP_RR -- -r 1,1 & 测试数据结论分析 sar 工具性能分析 1.

8.7K51

测者性能测试手册: 内存异常-JVM内存故障排查方法

系统故障诊断是一个一步一步排除可能疑点最后找到问题所在过程。今天测者和你一起学习JVM内存故障排查方法。...用来跟踪Java 内存使用情况,NMT可以追踪到堆内内存、code区域、通过unsafe.allocateMemory和DirectByteBuffer申请内存,NMT不能跟踪C代码申请堆外内存情况...,因此有些时候需要配合操作系统级内存检测工具使用。...参数说明如下: 参数 说明 off 默认是off,关闭NMT summary 只收集汇总信息 detail 收集全部信息 特别提醒:开启NMT后,性能会有5%-10%损耗,因此,在发现有内存问题后,...、打印虚拟内存映射、打印由呼叫站点聚合内存使用情况 baseline 创建内存快照,以比较不同时间内存差异 summary.diff 打印自上次baseline到现在内存差异,显示汇总信息 detail.diff

86820

性能测试必备知识(10)- Linux 是怎么管理内存

性能测试必备知识系列,可以看下面链接文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 内存映射 日常生活常说内存是什么 比方说,我笔记本电脑内存就是...为什么会有内存映射 既然每个进程都有一个这么大地址空间,那么所有进程虚拟内存加起来,自然要比实际物理内存大得多 所以,并不是所有的虚拟内存都会分配物理内存,只有那些实际使用虚拟内存才分配物理内存...并且分配后物理内存,是通过内存映射来管理 什么是内存映射 内存映射,其实就是将虚拟内存地址映射到物理内存地址 为了完成内存映射,内核为每个进程都维护了一张页表,记录虚拟地址与物理地址映射关系 ?...64 位系统内存分布也类似,只不过内存空间要大得多 灵魂拷问 内存究竟是怎么分配呢?...Swap 会导致严重内存性能问题 OOM 是内核一种保护机制 它监控进程内存使用情况,并且使用 oom_score 为每个进程内存使用情况进行评分: 一个进程消耗内存越大,oom_score

1.9K30
领券