性能
性能 "选项卡显示与应用程序性能有关的各种 KPI 指标和图表的详细概览。 性能选项卡允许您监控、分析和跟踪影响用户体验和应用程序稳定性的关键性能指标 (KPI)。 关键绩效指标可帮助您识别趋势、优化性能,并确保不同版本应用程序的用户体验流畅。
支持的技术
Instana 的性能指标收集功能适用于本机 Android 和 iOS 应用程序。 以下代理版本可提供此功能:
- Instana Android 代理 6.2.0 或更高版本
- Instana iOS 代理 1.9.0 或更高版本
在 Android 代理中启用性能指标收集功能
确保 Instana Android 代理的插件和 SDK 与您的 Android 应用程序集成。 更多信息,请参阅 Android 代理说明。
要在 Android 代理中启用性能指标收集功能,请在调用 Instana.setup() 方法时将属性设置为 true ,如下例所示:
class ExampleApp : Application() {
override fun onCreate() {
super.onCreate()
val perf = PerformanceMonitorConfig(
enableAppStartTimeReport = true, // Enable App start time metrics
enableAnrReport = true, // Enable ANR metrics
anrThresholdMs = 5, // This is the wait time until agent report an ANR
enableLowMemoryReport = true) // Enable Low Memory metrics
val instanaConfig = InstanaConfig(
key = "YOUR_APP_KEY",
reportingURL = "YOUR_REPORTING_URL",
enableCrashReporting = true,
performanceMonitorConfig = perf
)
Instana.setup(this, instanaConfig)
}
}
在 iOS 代理中启用性能指标收集功能
确保 Instana iOS 代理已安装。 更多信息,请参阅 iOS 代理说明。
要启用 iOS 代理的性能指标收集功能,请在调用 Instana.setup() 方法时将属性设置为 true ,如下例所示:
import UIKit
import InstanaAgent
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let options = InstanaSetupOptions(enableCrashReporting: true)
options.perfConfig = InstanaPerformanceConfig(
enableAppStartTimeReport = true, // Enable App start time metrics
enableAnrReport: true, // Enable ANR metrics
anrThreshold: 5.0, // This is the wait time until agent report an ANR
enableLowMemoryReport = true) // Enable Low Memory metrics
Instana.setup(
key: "YOUR_APP_KEY",
reportingURL: "YOUR_REPORTING_URL",
options: options
)
return true
}
}
在 Instana UI 中查看性能选项卡
为应用程序启用性能指标收集后,与性能相关的数据就会发送到 Instana。 您可以分析性能指标,深入了解应用程序的行为并优化其性能。
要查看性能仪表盘,请完成以下步骤:
在 Instana UI 的侧栏,选择网站和移动应用程序。
选择移动应用程序。
从移动应用程序列表中点击一个项目。
选择性能选项卡。

图 1。 移动应用程序性能标签视图
应用程序未响应 (ANR) 的性能指标
监控 ANR 对于识别和解决 Android 和 IOS 应用程序中的性能问题至关重要。 如果应用程序的主线程阻塞时间过长,就会触发 ANR 错误,从而影响用户体验。 这种结果可能会导致用户不满、差评和用户互动减少。 通过跟踪 ANR,您可以发现并改进性能障碍,重组代码以卸载繁重的任务,并使用确保用户交互反应灵敏的方法。
查看 "性能 "选项卡上的 ANR KPI 部分
在 " 性能 "选项卡上,添加了两个 KPI 部分,用于监控和分析 ANR 和应用程序冻结对用户会话和总体用户的影响。 这些 KPI 部分提供了对应用程序性能和用户体验的深入了解。
应用程序无响应或冻结,影响会话
受 ANR 影响会话的 KPI 部分显示了用户在所选时间范围内出现 ANR 或应用程序冻结的会话百分比。 如下式所示,用发生 ANR 的会话数除以唯一会话总数,即可计算出受 ANR 影响的会话。
ANR affected sessions = (Number of sessions with ANRs / Total number of unique sessions) * 100
您可以使用此公式计算出现 ANR 的会话百分比。 通过这种方式,您可以识别在会话中遇到性能问题的用户。
受影响用户的应用程序无法响应或冻结
受 ANR 影响的用户的 KPI 部分显示了在所选时间范围内,在会话期间出现 ANR 或应用程序冻结的唯一用户的百分比。 如下式所示,用发生 ANR 的用户数除以唯一用户总数,即可计算出受 ANR 影响的用户数。
ANR affected users = (Number of users with ANRs / Total number of unique users) * 100
您可以使用此公式确定受 ANR 影响的唯一用户。 这一计算公式有助于深入了解用户体验,发现潜在的改进领域。
应用程序无响应或冻结图
该图对应的是在指定时间范围内按移动应用程序平台( iOS 或 Android)分类的 ANRs 发生情况。 x 轴表示信标时间戳,y 轴表示信标总数。 可从图表中选择平台筛选器,帮助您直观查看特定平台的信标计数。
应用程序启动或启动时间的性能指标
应用程序启动或启动时间是指应用程序完全互动所需的时间。 监控这一性能指标有助于开发人员优化启动时间,提升整体用户体验。
应用程序启动时间分为三种类型:
冷启动:当应用程序从终止状态启动时,内存中没有任何现有进程。 冷启动通常是最慢的启动类型,启动时间也最长。
热启动:当应用程序从后台状态重新启动时发生。 内存中缓存或存在的内存资源很少,因此暖启动比冷启动所需的启动时间更短。
热启动:当应用程序已在后台运行时,系统会将应用程序的活动带到前台。 由于应用程序在内存中处于活动状态,因此系统无需重复初始化或再次加载任何资源,从而以最快的启动时间立即恢复运行。
冷启动时间 KPI 卡
性能 "选项卡上的 "冷启动时间 "关键绩效指标卡显示了应用程序从完全终止状态启动期间冷启动的第 75 百分位数。 该指标表示在给定时间段内,观察到的冷启动持续时间下降的 75% 小于该值。
冷启动指标的计算有助于评估应用程序的典型冷启动性能。 它排除了可能受异常值或极端条件影响的最慢 25% 的启动时间。 第 75 个百分位数(又称第三四分位数)汇总法比平均值计算法更能抵御异常值,也能更真实地反映应用程序的性能。
冷启动时间 KPI 卡通过识别趋势和大多数用户的体验,帮助开发人员更好地了解应用程序的性能。 这使他们能够有针对性地进行优化,加快应用程序的启动时间,改善整体用户体验。
冷启动时间图表
性能选项卡上的冷启动时间图表显示了所选时间段内按安卓和 iOS 平台分类的冷启动时间第 75 百分位数。
X 轴:信标时间戳(时间序列)。
Y 轴:选定时间内冷启动持续时间的第 75 百分位数。
通过冷启动时间图表,开发人员可以按平台( iOS 和 Android)分析冷启动时间的第 75 百分位数,并找出特定平台的瓶颈和优化机会。
低内存性能指标
当设备资源耗尽时会触发低内存事件,导致响应速度变慢和崩溃。 这可能会对用户体验造成负面影响,并严重影响业务。 向 Instana 报告低内存事件对于开发人员快速识别潜在问题并提供适当的解决方案至关重要。
低内存图表
图表对应的是在指定时间范围内发生的低内存事件,这些事件按移动应用程序平台( iOS 或 Android)分类。 x 轴表示信标时间戳,y 轴表示信标总数。 可从图表中选择平台筛选器,帮助您直观查看特定平台的信标计数。
背景网络使用率过高 (ENU) 的性能指标
为了优化应用程序性能和设备健康,每个平台都有限制后台网络过度使用的指导原则。 如果应用程序超过这些阈值,Instana 就会向用户发出警报,允许开发人员调整代码和优化后台进程,以减轻这些问题。
要启用 Instana 对 ENU 事件的监控, trustDeviceTiming 和 enableBackgroundEnuReport (请参阅 Android Monitoring API )都必须设为 true。 ENU 信标只有在后台数据使用量超过 50 MB 时才会触发,且每 24 小时只能触发一次。 此功能仅支持运行 API 等级为 21 或更高的 Android 设备,不适用于使用部件的应用程序。 iOS 平台的限制阻止了对该功能的支持。