启动、内存、卡顿三大分析,用户体验就用它?

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
简介: 启动分析支持通过预置采集和个性化自定义两种方式定义启动阶段,可以分别查询首次启动、冷启动、热启动的情况效果,并可以与设备、系统、版本、地域等维度做交叉筛选查询。U-APM的内存分析提供线上OOM异常的监控与分…

随着大量应用涌入市场加入“App内卷之战”,终端用户们对应用质量的要求是愈发地挑剔。端上研发同学光关注崩溃类bug解决已无法应对用户对App体验的诉求,很多用户也会反馈与性能有关的问题,比如App启动时间太长、页面卡死、闪退等。 随时线上用户诉求的提高,很多开发同学也从线下测试性能演变到更关注线上性能问题,以此保障用户体验。

友盟+应用性能监控平台 U-APM从去年底免费上线后,得到行业众多开发者的接入和支持。友盟+也非常重视开发者面对应能监测的各类问题,在近几个月,基于原有稳定性功能优化的基础上,U-APM又新增启动分析、内存分析、卡顿分析三大性能模块,全面助力开发者提升用户体验。

1.png

启动分析

启动场景是用户使用App的第一道关卡,启动慢、启动闪退都会直接从源头阻断客户使用,甚至会造成启动不成功新客户卸载的情况。很多技术团队都会以启动耗时作为重点性能监控指标。U-APM中启动分析包含启动趋势、慢启动分析和启动崩溃分析三大功能模块。

2.png

启动分析支持通过预置采集和个性化自定义两种方式定义启动阶段,可以分别查询首次启动、冷启动、热启动的情况效果,并可以与设备、系统、版本、地域等维度做交叉筛选查询。

3.png

用户也可以分别对首次启动、冷启动和热启动设置慢启动的业务定义。一般情况下,热启动的时间要远低于冷启动、首次启动的时间。慢启动分析可以分别监控三种情况下的慢启动设备数量,以及设备系统分布等信息,并且支持单一设备定点查询启动时序,精准定位问题。

4.png

启动阶段的崩溃应当是日常开发中首要需要解决的问题,避免用户短时间遇到崩溃无法继续使用。启动崩溃分析中筛选出自定义的启动时限下的崩溃列表,更便于定位启动问题。

5.png

内存分析

U-APM的内存分析提供线上OOM异常的监控与分析,帮助开发者及时发现与定位线上OOM问题。同时,提供App运行阶段内存占用情况,为应用内存优化提供关键指标数据。

在Android异常中,并不是所有的OOM问题都是可以简单查看错误摘要是否包含Out of Memory就可以判断的。

此次内存分析OOM异常的模块中,将内部沉淀使用多年的智能诊断技术对外透出。可以通过智能读取错误堆栈进行匹配,挖掘到那些不是OOM但实际是由OOM引起的异常问题并加以聚类,OOM异常的判断率直接提升20%~30%。iOS应用此次也新增了OOM异常的捕获。

6.png

内存占用模块中展示了内存关键指标信息,并且配以设备情况分布用作统计参考。还提供了渠道、版本、系统、设备型号的分布情况。

7.png

卡顿分析

U-APM中通过主线程的响应时间,将有卡顿体验的设备信息、卡顿日志进行上报。免费提供了iOS全部采集以及Android 双端卡顿采集,且如此大量的日志数据不用按流量付费。

8.png

除此之外,如果开发者觉得一条条看错误堆栈非常麻烦,可以使用U-APM利用聚合算法提供了卡顿模块的功能,约等于1分钟看到200条堆栈的内容,有效节省开发者大量挖掘问题的时间。卡顿模块支持正序、倒序两种聚合形式:

•正序聚合:筛选影响用户量大的200个堆栈从栈顶到栈底进行聚合,帮助客户挖掘造成卡顿问题的最核心问题

•倒序聚合:筛选影响用户量大的200个堆栈从栈底到栈顶进行聚合,帮助客户挖掘造成卡顿问题的最核心问题

两种方法均展示出现频率前10的模块,子树深度最多支持50层,帮助客户下挖详细的卡顿模块信息

9.png

利用OpenAPI自助调用错误数据

U-APM后台的错误数据在开发者日常的业务中还有很多的应用。比如,定期将应用质量数据灌入技术组周报中发给公司各部门,或者在公司自有后台中展示今日实时错误率等性能指标。此次新上的OpenAPI可以解决灵活获取应用采集的错误数据的需求,支持实时/离线90天内的数据灵活调用,免费开通权限即可使用。

10.png

监控告警升级

U-APM 中的监控告警功能在近期做了多项升级,支持更灵活更个性化的监控告警设置。开发者除了使用调用OpenAPI的方式自行加工数据设置告警,使用U-APM后台中的监控告警功能也更为方便:

a. 灵活设置告警生效时间:

11.png

开发者可以添加告警生效的时间段,比如每周一至周五的9点至19点,周末的一12点至20点,灵活设置工作时间,不被无效信息干扰。

b.重点错误类型/单条错误告警:开发者可以选择需要您重点关注的错误类型

12.png

或者直接针对某一条修复中的错误进行持续关注告警
13.png

c. 组合形式的告警触发条件
14.png

开发者可以通过多种指标以及阈值型或者对比型的规则,以交集/并集的组合方式,灵活设置想要的告警触发条件:

d.多种告警触达渠道

15.png

如果开发者还对监控告警的触达渠道有所要求,可以考虑使用公司的办公软件进行群触达,与同组的其他同事一起关注并修复应用问题。

错误捕获升级

U-APM近期的升级中对错误捕获的类型有大幅增多:

Android 支持Java、Native的崩溃采集;ANR;以及针对Unity SDK增加c#、Lua的错误类型;

iOS 支持:Swift、Objective-C崩溃的采集

除上述功能外,U-APM在云真机的UI设计、API上传符号表页面整体加载速度渲染等等功能上也进行了更新,详情及免费使用请至:https://www.umeng.com/apm?&utm_source=w_aly_pc_0723

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
10月前
|
Web App开发 监控 JavaScript
监控和分析 JavaScript 内存使用情况
【10月更文挑战第30天】通过使用上述的浏览器开发者工具、性能分析工具和内存泄漏检测工具,可以有效地监控和分析JavaScript内存使用情况,及时发现和解决内存泄漏、过度内存消耗等问题,从而提高JavaScript应用程序的性能和稳定性。在实际开发中,可以根据具体的需求和场景选择合适的工具和方法来进行内存监控和分析。
|
3月前
|
存储 弹性计算 缓存
阿里云服务器ECS经济型、通用算力、计算型、通用和内存型选购指南及使用场景分析
本文详细解析阿里云ECS服务器的经济型、通用算力型、计算型、通用型和内存型实例的区别及适用场景,涵盖性能特点、配置比例与实际应用,助你根据业务需求精准选型,提升资源利用率并降低成本。
202 3
|
2月前
|
存储 人工智能 自然语言处理
AI代理内存消耗过大?9种优化策略对比分析
在AI代理系统中,多代理协作虽能提升整体准确性,但真正决定性能的关键因素之一是**内存管理**。随着对话深度和长度的增加,内存消耗呈指数级增长,主要源于历史上下文、工具调用记录、数据库查询结果等组件的持续积累。本文深入探讨了从基础到高级的九种内存优化技术,涵盖顺序存储、滑动窗口、摘要型内存、基于检索的系统、内存增强变换器、分层优化、图形化记忆网络、压缩整合策略以及类操作系统内存管理。通过统一框架下的代码实现与性能评估,分析了每种技术的适用场景与局限性,为构建高效、可扩展的AI代理系统提供了系统性的优化路径和技术参考。
119 4
AI代理内存消耗过大?9种优化策略对比分析
|
11月前
|
编译器 C语言
动态内存分配与管理详解(附加笔试题分析)(上)
动态内存分配与管理详解(附加笔试题分析)
176 1
|
12月前
|
程序员 编译器 C++
【C++核心】C++内存分区模型分析
这篇文章详细解释了C++程序执行时内存的四个区域:代码区、全局区、栈区和堆区,以及如何在这些区域中分配和释放内存。
136 2
|
6月前
|
存储 Java
课时4:对象内存分析
接下来对对象实例化操作展开初步分析。在整个课程学习中,对象使用环节往往是最棘手的问题所在。
|
6月前
|
Java 编译器 Go
go的内存逃逸分析
内存逃逸分析是Go编译器在编译期间根据变量的类型和作用域,确定变量分配在堆上还是栈上的过程。如果变量需要分配在堆上,则称作内存逃逸。Go语言有自动内存管理(GC),开发者无需手动释放内存,但编译器需准确分配内存以优化性能。常见的内存逃逸场景包括返回局部变量的指针、使用`interface{}`动态类型、栈空间不足和闭包等。内存逃逸会影响性能,因为操作堆比栈慢,且增加GC压力。合理使用内存逃逸分析工具(如`-gcflags=-m`)有助于编写高效代码。
121 2
|
10月前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
310 62
|
10月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
230 1
|
10月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
143 5