展开

关键词

Android

前言Android应用大部分问题归根结底都会成为的问题,今天我们就先以Out of Memory(OOM)为起点介绍一下Android的原理以及排查问题的方法。 现在我们来归纳一下,问题主要包括常驻问题(主要是图片缓)、泄漏问题(主要是Activity泄漏)、GC问题(关键是GC For Alloc),后果会导致App Crash、闪退、后台被杀、卡顿,而且这是各种资源类问题积压的最后一环 因此可见其重要,下面,我们来介绍一下如何简单快速的检和定位泄漏问题。 方案这里介绍手和自动两种检方案 手和定位先介绍一个命令: $ adb shell dumpsys meminfo (pid name)这个命令是用来查看指定进程所占用体情况,比如当前APP leakcanary检出的泄漏信息,因为在日常和开发过程中,即便客户端接了泄漏检,但也只是作为一个debug,很难系统的看出某个版本的应用泄漏情况是如何的。

8110

ApacheBench

广告ApacheBench简介ApacheBench是一个用来衡量http服务器的单线程命令行。原本针对Apache http服务器,但是也适用于其他http服务器。 ab与标准Apache源码一起发布,免费,开源,基于Apache许可证。ApacheBench安装ubuntu执行apt-get install apache2-utils即可。 整体来说ab因为不利用到多核,不进行参数化,不支持http和https以外的协议等原因,只适合单个组件的粗略,比如Apache http。 不合适业务级别的,如一旦后台有数据库等,AB的是几乎没有意义的。 (兼容以前的版本)-t timelimit 进行的最大秒数。部隐含值是-n 50000。默认没有时间限制。 -T content-type POSTPUT的Content-type头信息。

38420
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年50元,还有多款热门云产品满足您的上云需求

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

    ——wrk

    介绍wrk 是一款简单的 HTTP 压。 最大的优点就是使用很少的线程压出很大的并发量,原因是它使用了一些操作系统特定的高 IO 机制,比如 select,epoll 等,其实它是复用了 Redis 的 ae 异步事件。 链接或者添加一下环境变量,就随时使用这个了。 read 0, write 0, timeout 357Requestssec: 334.31Transfersec: 5.07MB其中, -t 代表需要模拟的线程数 -c 代表需要模拟的连接数 -d 代表的持续时间 -timeout 超时时间 -latency 显示延迟时间搭配 Lua 脚本使用在基本压中,每次发送的请求都是一样的,很多时候我们压的请求体是每个请求都不一样,这时候就要写 lua 脚本来压

    27210

    Jmeter

    Jmeter是一款使用Java开发的开源的,主要用来做,而且用Jmeter来Restful API非常好用,在互联网项目开发过程中也是开发人员的必备。 二、Jmeter使用新建Thread Group,右键单击TestPlan,-->Add --> Threads(Users) -->Thread Group ? 设置线程属,用户数,持续几秒,循环几次, ?Number of Threads(Users):线程数,虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户在这里也是就设置了多少个线程。 查看结构,可以设置结果树和结果图形化分析 ?点击菜单栏的绿色三角形执行 分布式事务之TX-LCN

    26210

    - ab

    之前知道一般网站可以通过 LoadRunner, JMeter, QTP 等相应的软件进行, 印象中本科学习 “软件” 这门课程时安装并使用过, LoadRunner等不是一个小软件, 安装不是那么的容易 .最近发现Apache还有一款小巧玲珑的可以直接用来做压力, 相关文档可以参见 Apache ab 官网.Mac 下自带(体记不清是因为我安装了Apache还是系统自带的了)了这个 ab , 可需要登录态进行, 可以通过 -C 加 Cookie的方式进行, 之前, 最好确认这个命令用法是否正确, 只用1个请求看看响应的长度是否一致(可以通过 与 curl 命令的结果进行对比 bytes 和用 curl -b cookiedata=xxx http:shangtongdai.yxapp.xyzloans 得到的Content-Length: 53218 一致.然后进行完整的 .根据 ab 的 mannual 看到 post 时候, 需要将post的data用文件保, 然后通过参数 -p postdata.file 传输.但在实际ab进行时, 发现返回的结果异常, 正常情况下

    49330

    Lighthouse

    Lighthouse是一个开源的自动化的分析移动端和PC端网页指标的,npm上的简介:Lighthouse analyzes web apps and web pages, collecting desktop --locale zh https:www.baidu.com执行过程会生成一些类报告的数据:看是看不懂,直接看可视化的:几个配置view是自动打开结果在浏览器,preset是配置检PC 端还是移动端,locale是用中文显示,更多的配置可以去npm看:https:www.npmjs.compackagelighthouse主要有5个方面:(Performance)、可访问(Accessibility 我是不知道哪个网站真的需要做到那么极致的优化。体的各个参数就不介绍了,如果公司网站实在太慢了,可以用来生成个报告,然后看看哪些影响太大的,可以优化

    5820

    Android 泄漏篇

    -泄漏篇数据源APP占用,要比CPU的更为简单。App memory数据来源是dumpsysmeminfo。 如下图中,只收集了TOTAL的数据,如果要体分析native和dalvik的信息,也可以将其数据单独过滤出来保。 只要数据曲线不是如下图中的灰色平缓曲线,则可以证明该场景是有泄漏的。图三 泄漏示意图同样,如果只提供上述的曲线给开发,定位问题也会比较麻烦,泄漏的中,也可以多做一些。 如果是Dalvik泄漏,也可以使用Android Device Monitordump出一份hprof文件(别忘了先手Cause GC)。 笔者目前水平止步于此,后续将继续深入学习泄漏的相关容。文章来源于:腾讯移动品质中心 TMQ

    92200

    之代码级ContiPerf

    前言做的同学一定遇到过这样的场景:应用级别的发现一个操作的响应时间很长,然后要花费很多时间去逐级排查,最后却发现罪魁祸首是代码中某个实现低效的底层算法。 所以,我们就需要在项目早期,对一些关键算法进行代码级别的,以防止此类在代码层面就可以被发现的问题,遗留到最后的系统阶段才被发现。 但是,从实际执行的层面来讲,代码级并不在严格意义上的,通常的做法是:改造现有的单元框架。 那么有没有现成的这样的呢?当然也是有的,比如今天我们介绍的主角-- ContiPerf。 ContiPerf 简介ContiPerf 是一个轻量级的,基于JUnit 4 开发,可用于效率等。可以指定在线程数量和执行次数,通过限制最大时间和平均执行时间来进行

    46331

    之代码级ContiPerf

    前言做的同学一定遇到过这样的场景:应用级别的发现一个操作的响应时间很长,然后要花费很多时间去逐级排查,最后却发现罪魁祸首是代码中某个实现低效的底层算法。 所以,我们就需要在项目早期,对一些关键算法进行代码级别的,以防止此类在代码层面就可以被发现的问题,遗留到最后的系统阶段才被发现。 但是,从实际执行的层面来讲,代码级并不在严格意义上的,通常的做法是:改造现有的单元框架。 那么有没有现成的这样的呢?当然也是有的,比如今天我们介绍的主角-- ContiPerf。 ContiPerf 简介ContiPerf 是一个轻量级的,基于JUnit 4 开发,可用于效率等。可以指定在线程数量和执行次数,通过限制最大时间和平均执行时间来进行

    55740

    Top5——2019

    通常分为以下常见类别:负载: 这种类型用于评估系统在正常和峰值负载条件下的。耐力: 是评估软件如何在长时间执行正常作的。耐力的目标是检查系统问题,例如泄露。 (泄露发生在系统无法释放被丢弃的的时候。泄漏会损害系统,或者导致系统失败。)容量: 也称为洪水——用于确定软件在处理大量预数据时的效率。 自动化当您需要模拟真实用户活动时,自动化用于执行前 5 名选择正确的项目的成功起着至关重要的作用。合适的可以帮助团队节省大量时间和预算。以下是要考虑的前 5 个优秀的建议:1. 提供置的基于图像的自动化用于创建用例的数百个置关键字支持BDD Cucumber以自然语言表达场景可用于自动化和探索可以通过插件在Katalon上扩展,插件储关于Katalon

    76661

    集锦

    本周的作中需要对一套部署好的redis集群进行,在这个过程中用到了几个,这里对这些的用法记录一下。sar我们拿到一台虚拟机,在使用之前可以先用sar看一下该虚拟机目前的概况。 iperf3如果作涉及多台服务器之间的通讯,可以在作前使用iperf3这个对服务器之间的网络量一下,心里对网络也有个底。 server_ip --bandwidth 10M --bytes 300 # 使用10Mbits的带宽,发送的报文长度为300 Bytes$ iperf3 --client $server_ip --udp # UDP传输的有了iperf3的输出,我们对服务器之间的网络状况更加信心了。 redis-benchmarkredis本身带了一个叫redis-benchmark的,用它可以量一下部署的redis的指标。

    64750

    ABAP Webdynpro

    Under package SWDP_PERFORMANCE_VERIFICATION there is a pair of reports WDT_TRACE...

    17241

    分配器

    在CC++里,自己动手实现分配器是很常见的事情,写过几年CC++程序的人可都做过这样的事情。这其中很重要的一个原因是CC++不支持垃圾回收。 但是既然go语言已经支持垃圾回收,还有必要自己去写一个分配器吗?我们做一个简单的看看结果怎么样。 平台:OS: ubuntu 12.04 x86_64CPU: i5 2.27GMEMORY: 8G ben1.go 自己实现分配器package maintype Pool struct {buf

    45160

    memtier_benchmark利器

    memtier_benchmark 最近在英特尔的傲腾可持久化,使用到了memtier_benchmark这个,在使用这个的时候,遇到了一些问题,我简单总结了一下,写在这里 memtier_benchmark是类似redis-benchmark的,但是它又不仅限redis的,还可以覆盖memcache,它提供了丰富的选项和报表功够产生各种各样的流量模拟 memtier_benchmark安装方法还是有必要了解下的,因为我自己的安装的时候出现了一些小问题,这里给出一个经过的安装过程:1、准备作## 安装编译环境yum install -y autoconf 6379端口,模拟并发线程4个,每个线程驱动100个客户端,其中4k大小的key占比50%,512k大小的key占比50%,总共1800s,读写比例10:1,将每个客户端的日志保在dirclient.txt 最后面,给出一个结果的容,供大家参考:4 Threads100 Connections per thread1800 Seconds ALL STATS======================

    1.1K20

    软件方案-选型

    前言 在往期文章《软件方案-准备》介绍了前期准备的要点,本文主要介绍的选型。 想象下,如果不使用进行会怎么样? 我们可以从的定义的角度来分析,是指通过自动化的模拟多种正常、峰值以及异常负载条件来对系统的各项指标进行。 如果不使用,仅靠人进行在以下的弊端:需要投入大量的资源:  为了模拟多种负载、并发的场景需要多人协同作,通常没有很多的资源,而且就算有资源人的效果也会大打折扣,甚至于某些场景仅凭人是无法完成的 准确较差:  由于需要模拟多种负载和并发场景,如果由人来操作,难免会在误差,而且相对或程序来说这种误差会更大,对结果影响也非常大。 常用的下面是对Jmeter、locust、wrk、Loadrunner、vegeta不同维度的对比以及简单介绍 LRJmeterlocustvegetawrk短时间大并发支持支持支持支持支持

    84920

    JMeter:和压力

    JMeter简介-----------------------------------------------------------JMeter时Apache下基于java的一款和压力 作为一款专业的压,JMeter功强大,本片文章中仅简单介绍与本次压相关的容,从JMeter下载安装,接口压使用两个方面来说明。 (http:www.relaxheart.cn)中有一个 通过IP地址获取地理位置 的API接口.http:localhost:8087restapiip2Address{ip}下面,我们以这个接口的为例来一块看下 创建一个计划添加线程组编辑 添加 线程(用户) 线程组配置线程组配置一个拥有10个线程的线程组,并让每个线程循环作200次分配采样器在线程组下,需要给线程组分配相应的采样器,比如HTTP请求、 压结果分析总结----------------------------JMeter是一款优秀的开源软件,使用JMeter可以方便的对Web应用程序(主要指API接口)进行压力

    1.4K00

    【 Android 场景化泄漏篇

    作者:陈帅团队:腾讯移动品质中心TMQ 一、数据源 APP占用,要比CPU的更为简单。App memory数据来源是dumpsys meminfo。 如下图中,只收集了TOTAL的数据,如果要体分析native和dalvik的信息,也可以将其数据单独过滤出来保。 只要数据曲线不是如下图中的灰色平缓曲线,则可以证明该场景是有泄漏的。 图三泄漏示意图 同样,如果只提供上述的曲线给开发,定位问题也会比较麻烦,泄漏的中,也可以多做一些。 如果是Dalvik泄漏,也可以使用Android Device Monitor dump出一份hprof文件(别忘了先手Cause GC)。 篇幅有限,还有很多深入的容无法一一铺陈,后续将继续深入学习泄漏的相关容。 搜索微信公众号:腾讯移动品质中心TMQ,获取更多干货!

    65610

    redis redis-benchmark

    image.pngredis-benchmark 是redis自带的,可以用来本地或远程redis的基本redis-benchmark -n 100000 -c 100? 这个命令是最简单的命令,的也是最全面,会把redis中各个数据结构的操作都一遍,然后输出各个操作的结果例如SET操作,会执行100000次请求,每次请求模拟100个客户并发,结果中显示每秒执行了多少次请求只显示每秒请求数使用 -q 参数只某个操作 redis-benchmark -t set,lpush -n 100000 -q? 远程redisredis-benchmark -h 127.0.0.1 -p 6379 -c 5000 -n 100000 -q

    1.4K80

    初识JMeter

    JMeter简介Apache JMeter是Apache组织开发的基于Java的压力。JMeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下他们的强度和分析整体。 ;各种负载统计表和可链接的计时器可供选择;数据分析和可视化插件提供了很好的可扩展以及个化;有提供动态输入到的功。 有了脚本,jmeter就可以通过线程来模拟真实用户对web服务器的访问压力。这与LoadRunner的作原理基本一致。? 512M,如果heap超过物理的一半,可运行jmeter会慢,甚至出现溢出。) IP不支持支持图形报表支持(较弱)支持(较强)网络模拟不支持支持逻辑控制支持支持监控服务器资源(CPU、等)支持支持功支持不支持

    58840

    负载,-Gatling

    前言GatlingGatling是一款功强大的负载,它为易于使用,高可维护和高而设计。 开箱即用,Gatling由于对HTTP协议的出色支持,使其成为负载任何HTTP服务器的首选。由于核心引擎实际上是协议不可知的,因此完全可以实现对其他协议的支持。 缩短产品上市时间:Gatling 在开发周期的早期检问题和错误 增强用户体验:Gatling可以准确描述您最慢的用户体验 提升您的业务:加特林可以防止您的业务成为自身成功的牺牲品 是什么意思 Web应用程序的包括: 模拟大量有复杂行为的用户; 收集和汇总所有请求的响应时间; 创建报告和分析数据; ? 其他关于负载,-Gatling详解到这里就结束了。原创不易,如果感觉不错,希望给个推荐!您的支持是我写作的最大动力!

    98530

    相关产品

    • 测试管理

      测试管理

      CODING 测试管理(CODING-TM)为您提供井然有序的测试协同管理工具服务,从测试用例库管理、制定测试计划,到协作完成测试任务,为测试团队提供敏捷测试工作方式,提高测试与研发团队的协同效率……

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券