网站首页 > 教程分享 正文
在项目初期,开发者往往着重关注开发需求,很少会去关注性能问题。但是,随着功能越来多,界面越来越丰富,系统加载不过来,导致卡顿问题越发严重,用户反馈异常增多,于是整理了一些iOS卡顿的相关内容,也来谈一谈卡顿监测问题。
一、卡顿检测
实际项目中,卡顿问题不好发现和定位,开发人员就只能一遍一遍的打断点调试代码,一遍一遍的查找原因,导致工作量异常繁重,从而导致大量经费的消耗。在这种情况下,可以借助第三方性能检测工具查找问题,推荐使用友盟U-APM,卡顿分析功能是通过U-APM提供的监控SDK 捕获所监控App主线程消息执行超时的情况,帮助您优化用户使用体验、用户反馈问题是否与卡顿现象间接引发有关,下面介绍一下友盟的卡顿分析部分功能:
1、卡顿列表
您可以在此列表中查看筛选维度+时间范围内,所有卡顿问题根据日志根据算法聚合后的错误列表,默认按照卡顿次数降序展示,帮助您快速的找到卡顿次数最多、影响最严重的卡顿问题。您也可以选择按照影响人数排行,找到影响面积最大的卡顿问题
2.卡顿模块
卡顿模块通过智能算法聚类了卡顿的模块与子模块,支持正序聚合与倒序聚合
正序聚合:从栈顶开始到栈底聚合,您可以看到导致卡顿的核心原因是什么
倒序聚合(默认选择):从栈底开始到栈顶,聚合之后,您可以发现影响性能的最底层的方法
3.卡顿详情
点击卡顿摘要可以进入卡顿详情的页面
您可以在此页面查看卡顿的详情信息,帮助您排查卡顿问题的原因,提供了卡顿趋势、卡顿分布、卡顿详细日志、卡顿设备信息以及卡顿备注的功能
了解过友盟的功能后,相信大家对于卡顿问题的检测已经得心应手,下面来看一看造成卡顿的原因以及解决方法!
二、造成卡顿的原因及解决办法
1、离屏渲染问题
在tableView or collectionView的Cell使用中如果大量出现了view.layer.cornerRadius +
ClipToBoundsormasksToBounds的设置,会造成滚动不流畅,滚动起来十分的卡顿。
2、线程问题
主线程阻塞
这是一个最常出现的问题,当在主线程进行长耗时操作时就会出现明显的卡顿现象。这时的解决办法就是将长耗时操作放到分线程处理,这个就不多赘述了。
多线程问题
Apple 一直推荐自己创建 serial GCD queue 的时候,一定要控制数量,而且最好设置 target queue,否则会出现问题。
总结
本篇总结了iOS APP卡顿的相关内容,希望能给看到的开发同学带来实质性的帮助!
猜你喜欢
- 2025-03-23 (4) 四轮参数(四轮车20马力价格)
- 2025-03-23 代码越“整洁”,性能越“拉胯”,甚至导致程序变慢 15 倍!
- 2025-03-23 鸿蒙5开发:手把手教你用 Ark-TS UI 做一个会 “动” 的计数器
- 2025-03-23 一个初级开发者完胜十几人团队,此处有秘诀!
- 2025-03-23 C#_WPF_按钮模板及自定义控件的使用
- 2025-03-23 SwiftUI学习笔记,可视化编辑和界面布局(二)
- 2025-03-23 Vision Pro开发实践(结合24黑马idea)
- 2025-03-23 实战iOS 9:剖析UIKit Dynamics的改进
- 2025-03-23 Windows桌面美化教程!彻底透明任务栏,强迫症的福音
- 2025-03-23 iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)