您渴望客户端 App 的性能更卓越吗?使用 QAPM(Quick Application Performance Monitor),几乎零成本的搭建 App 性能测试与全网监控。我们拥有如下四大优势:

十年磨一剑

拥有十年性能优化经验的团队,在 QQ、QQ 空间、QQ 音乐等亿级用户的产品中不断深耕,最终打磨出 QAPM,助您突破性能瓶颈

 

以一敌百

QAPM 不仅能在 App 发布前定位解决性能问题,还能随 App 发布后,覆盖全网的用户,定位复杂用户环境的关键问题,低投入高产出

唯快不破

QAPM 能对接持续集成和缺陷管理系统,构建发现、定位、解决、验证的闭环。当天接入,当天就能看到性能结果,研发效率大幅提升

 

专家门诊

若您成为 QAPM 团队选择的标杆客户,将能享受腾讯 T4 级性能专家的上门服务,我们用十年的性能优化经验为你解决问题

QAPM,唯快不破,助您达成 App 性能优化成果。

当您想要优化卡慢问题时,可以从 IO、内存换页、CPU、流量等维度下手。

当您想要优化 Out of memory 问题时,可以从内存占用、内存换页的维度下手。

当您想要优化电量问题时,可以从 CPU、流量的维度下手。

腾讯客户端性能分析(QAPM )是一款全方位定位检测 App 应用性能的 SDK,其简单易用并能提供多维度检测及分析,只需简单的调用几个接口,就能对 App 进行全方位的性能检测。
www.ksyuwei.cn

App 端接入 QAPM 后,QAPM 会自动抓取相关性能数据并上报到后台,后台会结合专项长期测试经验中抽取的规则进行分析,自动分析出各维度存在可疑的性能缺陷。同时,也可以结合 Web 和邮件查看相关的报表数据,可用于和历史版本或基准做对比。

主要功能

卡慢优化

在 App 的功能基本成型后,会有关于卡顿、慢、假死等用户投诉。然而腾讯的某些组件,优化到比操作系统 API 更快。QAPM 不仅能定位主线程上的直接原因,还更重视 IO、SQLite、内存、GC/页错误、流量等的根本原因,促进性能全面优化。

闪退优化

当 App 出现闪退的情况时,如果是以 Out of memory 为主因,开发团队在优化它时会遇到较大的问题。然而 QAPM 提供了内存触顶分析能力,以复用内存、零泄漏为目标,可以解决这个难题。

电量优化

当用户投诉手机发烫,耗电量太大时,QAPM 能定位到常见的耗电代码(例如,长时点亮屏幕等动作)。同时 QAPM 还会分析 CPU、IO、GC 等维度的开销,既能解决体验卡慢的问题,也能减少电量的消耗。

架构图

www.ksyuwei.cn

功能组件

容器服务

腾讯云容器服务( Tencent Kubernetes Engine )是基于原生 kubernetes 提供的以容器为核心、高度可扩展的高性能容器管理服务。

负载均衡

提供安全快捷的流量分发服务,访问流量时经由 CLB 可以自动分配到云中的多台云服务器上,扩展系统的服务能力并消除单点故障。

弹性 MapReduce

弹性 MapReduce 结合云技术和 Hadoop、Hive、Spark、Storm 等社区开源技术,提供安全、可靠、低成本、可弹性伸缩的云端托管 Hadoop 服务。

云数据库 HBase

腾讯云是基于全球广受欢迎的 HBase 打造的高性能、可伸缩、面向列的分布式存储系统,100%完全兼容 HBase 协议。

云数据库 CynosDB

云数据库 CynosDB 是腾讯云自研的新一代高性能、高可用的企业级云数据库。云原生的数据库架构将传统数据库与云计算的优势相结合,完全兼容 MySQL 和 PostgreSQL。

Elasticsearch Service

腾讯云 Elasticsearch Service 是基于开源搜索引擎 Elasticsearch 打造的高可用、可伸缩的云端全托管的 Elasticsearch 服务。

对象存储

由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。

文件存储

文件存储(Cloud File Storage)提供安全可靠、可扩展的共享文件存储服务。更多实践案例及 QAPM 信息请前往 QAPM 团队主页。如遇到问题您可 联系在线客服。www.ksyuwei.cn

多种图表,数据指导业务

对于监控不同的数据,我们提供了相对应的合适的展示形式,运营人员可通过数据及多功能图表提供的详细信息便捷地进行业务决策。您可以选择多种不同维度组合的图表来查看数据,以及添加查询条件来筛选需要的数据,能更直观准确地获取您想要的信息。

及时上报,优化用户体验

快速定位问题点进行上报,开发人员及时修复,减少用户投诉,增加留存率。各类问题被触发后,及时进行上报,开发获取相关问题信息,在更多用户接触到差体验而投诉之前修复好,能有效降低用户投诉,优化使用体验,减少因性能问题流失的用户量。

信息聚类,提升开发效率

卡顿个例聚类,节省开发人员检查步骤,缩短处理时间,提升整体效率。为突出上报隔离中的重点卡顿问题,防止逐条上报导致重复信息干扰,增加不必要的工作量,我们通过抽取关键应用层堆栈函数进行聚合,能够展示这些函数的触发次数和函数耗时情况,以帮助项目快速发现重点问题进行优化。

www.ksyuwei.cn

www.ksyuwei.cn

www.ksyuwei.cnwww.ksyuwei.cnwww.ksyuwei.cnwww.ksyuwei.cnwww.ksyuwei.cnwww.ksyuwei.cnwww.ksyuwei.cnwww.ksyuwei.cnwww.ksyuwei.cn

QAPM 的监控功能有哪些?

QAPM 目前的监控功能有:电量指标&个例、机型、文件 I/O 个例、实时资源、卡顿指标、卡顿个例&聚类、内存指标、内存个例、DB I/O 个例、Crash 指标&个例&聚类、启动耗时。

QAPM 怎么使用启动耗时?其他的窗口打开速度也可以监控吗?

QAPM 提供了简单的 API,需要您设置插入开始端及结束端,然后插入我们提供的代码,就可监控 App 的启动耗时。Android App 由各种 Activity 组成,您仅需新增一行代码调用,QAPM 可以为您展示全部 Activity 的打开速度。

QAPM 的性能消耗如何?

接入 QAPM 对各使用机型造成的性能消耗被控制在一定的可接受范围内,尤其是我们推荐的正式发布使用的配置,性能消耗极低。在接入手机 QQ 等大用户量产品时,均是跟随外网发布,有过亿用户的检验。如下表为部分机型数据展示。

iOS SDK

机型

iPhone 8

核心功能(推荐正式发布使用)高级功能(推荐研发流程与灰度使用)
卡顿监控VC 泄漏监控大块内存分配触顶率监控Sigkill内存泄漏检测
CPU2% - 3%<1%<1%<1%6 - 12%

(包含内存堆栈采集)

60 - 80%

(检测过程中)

内存2.30MB5.11MB2.61MB2.50MB11.5MB14MB
流量4KB3KB3KB0.8KB3.5KB2.47KB

Android SDK

机型

小米4

核心功能(推荐正式发布使用)高级功能(推荐研发流程与灰度使用)
卡顿监控内存泄漏触顶率监控掉帧监控文件 IO 监控电量监控
CPU0.03%<0.35%<0.15%<0.03%1.25%0.10%
内存8.8KB4.3KB7.56KB9KB5.8KB14KB
启动耗时22ms16ms21ms20ms24ms21ms

为什么配置白名单?

这样的好处是可以确保翻译。 因为我们翻译是只翻译 top7 用户量的版本,研发流程内使用的话,需要配置白名单才能确保翻译。如果配置白名单的用户 QAPM 将会记录用户每一次的操作数据,另外配置白名单之后可以看到一些翻译了且有价值的上报。

卡顿聚类是根据什么维度聚类的?总耗时,平均耗时,各种占比的意义是什么?

  • 卡顿聚类是按照堆栈的每一层级函数聚合的。

  • 总耗时是函数在每20ms采样的次数20ms得出的(例如,A 函数在我们上报中出现了6次,那么耗时120ms)。

  • 平均耗时是总耗时除以上报次数。

  • 上级占比:耗时占父函数占比。

  • 版本占比:耗时版本总量占比。

  • Crash 用户影响范围:遇到 Crash 的用户数/用户数。

内存触顶上报的时候会标出具体的场景吗?

与场景无关,无法获取 App 具体业务的场景,仅用来统计高内存使用用户的比率信息。

开发环境下使用了 QAPM.All,但卡慢个例下 DB 异常,IO 异常没有数据,为什么?

DB 异常、IO 异常功能对 Android 7 以下手机有效, 请确认下手机版本。

内存指标下的内存触顶率没有数据?

内存触顶率数据要内存超标后才会上报。(触顶率:内存虽然没有达到耗尽,但是处于85%最大内存阈值的几率。被抽样命中的用户每次内存高过85%内存阈值都会触发上报。算法是“发生触顶的人数除以被采样算法命中的人数”。)

符号表文件 mapping.txt 文件,什么时候需要上传?

如果您开启混淆编译,则会生成这个文件;如果您不开启,则不需要设置,直接就是明文。


  • 名称: 腾讯客户端性能分析QAPM
  • 关键词: 腾讯客户端性能分析,APP性能监测,性能测试,腾讯云