移动端性能标准值及定义整理

本文详细介绍了App性能指标的定义及业内参考值,包括崩溃率、启动时间、网络呼叫成功率等关键指标,对比了友盟、Bugly、FirebasePerformance等工具的统计方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这个月Boss需要我们整理一份各个性能采集后的参考值,对于崩溃的数据采集,我们接入有Bugly,友盟。对于性能采集我们接入的是Firebase Performace

591的性能指标

指标说明

日报使用:崩溃率(友盟最新版)、启动时间(Performance)
统计使用:崩溃率(友盟最新版)、用户崩溃率(友盟最新版)、ANR率/卡顿率(bugly最新版)、启动时间(Performance)、網路呼叫成功率(Performance)
崩溃率的定义:友盟比较符合大多数人的理解
参考值的定义:崩溃率和启动时间,虽然有找到一些参考值,不过对比之后显示我们的数据非常好(原因是平台统计数据为业内平均值),所以我们依据591近期的数据和自我要求,定义了一个参考值(如上日报)
其它:用户崩溃率、ANR率/卡顿率、網路呼叫成功率,对于App的性能评估也有一定的作用,不过日报里面建议先不添加,避免太多内容

App性能指标定义

平台 名称计算方式描述
友盟崩溃率/错误率崩溃次数/启动次数1.崩溃次数/错误次数:
该类错误在一定时间范围内产生的次数,也就是SDK上报的日志数量
2.启动次数:
1).Android:启动是通过在所有activity中调用MobclickAgent.onResume() 和MobclickAgent.onPause()方法来监测的
2).iOS:进入后台即算是当前统计会话结束。当再次进入前台时,算作一次新的启动行为,
并开始新的统计会话
用户崩溃率影响用户/活跃用户1.影响用户数:在一定时间范围内对该类错误的所有错误日志按照设备维度进行排重计数
2.活跃用户:所选时间段内,启动过应用的用户(去重),启动过一次的用户即被视为活跃用户,包括新用户和老用户。
Bugly次数崩溃率发生次数/联网次数1.发生次数:一个异常发生且被记录上报,计为一次异常发生。
2.联网次数:即 启动次数+跨天联网次数。
3.跨天联网:用户没有启动应用,只有应用进程在后台运行,且超过零点,计为一次跨天联网。
4.启动次数:以下场景均计为一次启动
1).应用完全退出后重新启动,计为一次启动;
2).应用被切换至后台后,30秒后被切换至前台,计为一次启动,若未超过30秒切换至前台,不算一次启动。
用户崩溃率影响用户/活跃用户1.影响用户数:在一定时间范围内对该类错误的所有错误日志按照设备维度进行排重计数
2.活跃用户:所选时间段内,启动过应用的用户(去重),启动过一次的用户即被视为活跃用户,包括新用户和老用户。
次数ANR率/卡顿率发生次数/联网次数同上次数崩溃率描述
用户ANR率/卡顿率影响用户/联网用户同上用户崩溃率描述
Performace启动时间從程式碼初始化 - 使用者介面有所回應為止 定义
1.iOS:在应用将第一个 Object 加载到内存时开始,第一个 run loop 成功(应用收到 UIApplicationDidBecomeActiveNotification 通知后)时停止。
2.Android:在应用的 FirebasePerfProvider ContentProvider 完成其 onCreate 方法时开始,第一个 Activity 的 onResume() 方法被调用时停止。
網路呼叫成功率 成功响应次数/总响应次数 由傳回 2xx 或 3xx 回應代碼的應用程式提出的 HTTP/S 要求百分比。如需查看詳細資訊,請前往「網路要求」分頁
GooglePlay當機率 使用者遇到至少1次當機情形的每日工作階段百分比。每日工作階段是指使用者一天內使用應用程式的時間
ANR 发生率 使用者遇到至少 1 次 ANR 情形的每日工作階段百分比。每日工作階段是指使用者一天內使用應用程式的時間。
App Store Connect 崩溃率 崩溃次数/使用次数目前appstore 统计是限参与统计用户
计算方式是 = 崩溃次数/使用次数 (使用次数:使用时间超过2s的次数)附:仅限参与统计用户

App性能指标业内参考值

名称业内参考值
iOSAndroid数据来源
崩溃率1.01%0.2%听云16年报告 - 年平均崩溃率
0.93%0.13%听云15年报告 - 年平均崩溃率
0.78%1.89%听云17年报告 - 房产中介 - 年平均崩溃率
0.79%0.17%听云17年报告 - 工具 - 年平均崩溃率
0.38%0.09%听云16年报告 - 软件工具 - 年平均崩溃率
优秀值0.3%
标准值0.8%
优秀值0.2%
标准值0.4%
来自14年的听云报告
根据统计数据显示,当iOS的崩溃率超过0.8%,Android的崩溃率超过0.4%的时候,活跃用户有明显下降态势。
2.96%2.86%bugly2016 移动应用质量大数据报告-平均崩溃率
优秀:0.03%一些开发群中开发者的回复(滴滴,美团)
ANR率/卡顿率-1.09%GooglePlay的不良行为门槛
用户ANR率-0.47%GooglePlay的不良行为门槛
启动时间5sPerformance标准值
網路呼叫成功率97.45%95.48%听云17年报告 - 年平均 HTTP 请求成功率
响应时间417.99ms439.65ms听云17年报告 - 房产中介 - 年平均响应时间
652.69ms617.19ms听云17年报告 - 工具 - 年平均响应时间

参考链接

友盟定义参考

Bugly定义参考

Preformace

听云

转载于:https://juejin.im/post/5bf654aa5188252bf829b3e8

<think>嗯,用户想了解如何使用AI或机器学习模型对眼底图像实现糖尿病视网膜病变的自动分级方法和工具。首先,我需要整理一下这个领域的基本流程,包括数据预处理、模型选择、训练、评估和部署这些步骤。 首先,数据预处理是关键。眼底图像通常会有噪声,或者尺寸不一,可能需要归一化处理。常见的操作包括调整大小、标准化,可能还要用CLAHE来增强对比度。另外,数据增强也很重要,尤其是当数据量不足时,旋转、翻转这些操作可以增加数据的多样性,防止过拟合。 然后是模型选择。传统方法可能用CNN,比如ResNet、Inception这些预训练模型,进行迁移学习。现在很多研究转向使用更高效的架构,比如EfficientNet,或者结合注意力机制的模型,比如Vision Transformers(ViT)。这些模型在图像分类任务上表现不错,可能适合眼底图像的分级。 接下来是模型训练部分。需要定义损失函数,多分类问题通常用交叉熵损失。优化器的话,Adam或者SGD加上学习率调整策略比较常见。另外,由于医疗数据可能存在类别不平衡,可能需要采用加权损失或者过采样、欠采样的方法。 评估指标方面,准确率、ROC-AUC、混淆矩阵这些都要考虑。特别是AUC,因为类别可能不平衡,准确率可能不够可靠。此外,还要注意模型的敏感性和特异性,这在医疗应用中很重要。 工具方面,深度学习框架如PyTorch和TensorFlow是基础。图像处理库像OpenCV和Pillow用来做预处理。数据增强库比如Albumentations可以方便地实现各种增强。还有一些医疗影像专用的工具包,如MedPy或者MONAI,可能提供特定的预处理方法或评估指标。 然后,代码示例部分,我需要展示一个典型的流程。比如用PyTorch加载预训练的ResNet模型,修改最后一层全连接层,适应分类任务的数量。数据加载部分要处理图像,应用增强,然后训练循环中使用交叉熵损失和优化器。评估时计算准确率和AUC。 不过,可能还需要考虑一些细节。比如,数据的分层分割,确保训练集和测试集的类别分布一致。另外,使用预训练模型时,是否要冻结前面的层,只训练最后的全连接层,或者进行微调。这可能会影响训练时间和模型性能。 相关问题部分,需要涵盖数据预处理的重要性、常用模型、迁移学习的作用、评估指标的选择,以及工具库的作用。这些问题应该能帮助用户进一步深入理解各个步骤的关键点。 可能用户的实际需求是想要从头开始构建一个自动分级系统,或者了解现有的方法以便改进。需要确保回答覆盖了从数据到部署的整个流程,并提到可能的挑战,比如数据不足、类别不平衡、模型解释性等。不过用户的问题主要集中在方法和工具,所以这些方面可能暂时不需要深入,但相关问题可以引导他们思考这些方面。</think><< 使用AI/机器学习模型对眼底图像实现糖尿病视网膜病变(DR)自动分级的核心方法及工具如下: --- ### **方法流程** 1. **数据准备与预处理** - **数据来源**:公开数据集(如Kaggle的APTOS、EyePACS、IDRiD)或医院合作获取的眼底图像。 - **预处理步骤**: - 图像标准化(调整尺寸、归一化像素值)。 - 对比度增强(如CLAHE算法)。 - 去除噪声(高斯滤波或中值滤波)。 - 数据增强(旋转、翻转、裁剪)缓解过拟合。 2. **模型选择与训练** - **经典CNN模型**:ResNet、Inception、EfficientNet等预训练模型(迁移学习)。 - **注意力机制模型**:Vision Transformer(ViT)、Swin Transformer。 - **轻量化模型**:MobileNet(适用于移动端部署)。 - **损失函数**:加权交叉熵损失(解决类别不平衡)。 - **优化策略**:Adam优化器、学习率衰减、早停法。 3. **模型评估** - **指标**:准确率、AUC-ROC、F1-Score、混淆矩阵。 - **医学验证**:与眼科医生的诊断结果对比(Cohen's Kappa系数)。 4. **部署与应用** - 工具链:ONNX/TensorRT加速推理,Flask/Django构建API。 --- ### **代码示例(PyTorch实现)** ```python import torch import torchvision from torch import nn, optim from torch.utils.data import DataLoader from torchvision import transforms from sklearn.metrics import roc_auc_score # 数据预处理 transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ]) # 自定义数据集(假设已加载眼底图像) class DRDataset(torch.utils.data.Dataset): def __init__(self, images, labels, transform=None): self.images = images self.labels = labels self.transform = transform def __len__(self): return len(self.labels) def __getitem__(self, idx): image = self.images[idx] label = self.labels[idx] if self.transform: image = self.transform(image) return image, label # 模型定义(使用预训练的ResNet50) model = torchvision.models.resnet50(pretrained=True) model.fc = nn.Linear(model.fc.in_features, 5) # 5个分级类别 # 训练配置 criterion = nn.CrossEntropyLoss() optimizer = optim.Adam(model.parameters(), lr=1e-4) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model.to(device) # 训练循环 for epoch in range(10): model.train() for inputs, labels in train_loader: inputs, labels = inputs.to(device), labels.to(device) optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() # 评估 model.eval() all_probs, all_labels = [], [] with torch.no_grad(): for inputs, labels in test_loader: inputs, labels = inputs.to(device), labels.to(device) outputs = model(inputs) probs = torch.softmax(outputs, dim=1) all_probs.extend(probs.cpu().numpy()) all_labels.extend(labels.cpu().numpy()) auc = roc_auc_score(all_labels, all_probs, multi_class='ovo') print(f"AUC-ROC: {auc:.4f}") ``` --- ### **常用工具库** 1. **深度学习框架**:PyTorch、TensorFlow/Keras。 2. **图像处理**:OpenCV、Pillow、Albumentations(高级数据增强)。 3. **医学影像工具包**:MONAI(医学影像专用预处理)、MedPy。 4. **部署工具**:ONNX Runtime、TensorRT、FastAPI。 --- ### **挑战与改进方向** - **数据不足**:使用生成对抗网络(GAN)合成数据。 - **类别不平衡**:Focal Loss或过采样技术(如SMOTE)。 - **可解释性**:Grad-CAM可视化模型关注区域。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值