首页
学习
活动
专区
圈层
工具
发布

iOS之深入解析Xcode 13正式版发布的40个新特性

和 -debug; Network 模板现在包含一个用于捕获和分析 HTTP 流量的新工具; Instruments 时间线视图现在使用基于 Metal 的渲染器以获得更流畅的体验,包括对时间线可用性的整体改进...文件,这使您可以在应用程序中进行 Metal 着色器调试和分析,而无需在您的 metallib 中嵌入着色器源; Metal Debugger 中的 Apple GPU 可以使用 GPU 时间线,使用此时间线可视化和检查...Metal System Trace、Xcode 中的 Metal Debugger 以及全新的 Condition Inducer 中提供了新的一致 GPU 性能状态分析工作流; 现在可以在 Metal...Goals 使分析应用程序版本的滚动体验变得容易; 当查看应用的指标时,现在可以选择查看应用的 App Clip 的指标; Xcode Organizer 中新的 Terminations 指标显示前景和背景终止...App Store Connect 时创建应用记录的功能; 将应用上传到 App Store Connect 时,Xcode 中的分发助手会检测您的应用是否具有有效的内部版本号 (CFBundleVersion

12.8K40

Xcode 11 初体验

在开发和调试时,随时在暗黑和明亮模式之间进行切换。 Asset目录可以使你轻松的控制图像和颜色在暗黑和明亮模式之间进行切换。...Debug 工具升级 Xcode 11 中,对模拟器调试做了很多加强。...在设备管理窗口中,现在增加了这几个选项 根据 Network Link 可以选择你需要的状态,当然 Thermal status 可以选择!都可以让你的 APP 在更有预期的状况下运行。...模拟器 直接在Watch模拟器上运行Watch app。 基于Metal多模拟器进行了更新,Metal程序可以直接在模拟器上运行。 模拟器FPS达到60帧每秒。 CPU占用率减少至少90%。...性能分析工具(Instruments) 层次更加分明,更容易浏览和更正数据。 新的 Swift UI 模版。 完全重写了 Metal System Trace 模版,速度提升了10倍以上。

4.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    微信团队分享:详解iOS版微信视频号直播中因帧率异常导致的功耗问题

    1、引言 功耗优化一直是 app 性能优化中让人头疼的问题,尤其是在直播这种用户观看时长特别久的场景。...如下图所示 PerfDog 数据显示在 13 pro max上直播点赞期间 FPS 直奔120: 正常情况下,视频号直播里大部分主播开播流基本都是30fps 以内,也就是正常情况下我们只需要维持30fps...那为什么这里降帧后依旧会出现60fps 呢? 经过一系列排查我们发现这是由于直播的点赞动画导致的高帧率,如果去掉动画后 FPS 就会回到正常情况下了,且 GPU 占用也有了明显下降。...我们可以在越狱后给 app 自签名 com.apple.QuartzCore.debug 这个 entitlement 后,再调用如下代码所示的私有 api 即可全局打开这个面板,可以方便的在手机端查看...7、优化后的效果 按照苹果的建议 ,app 内容在没有频繁更新时,应该尽量降低 FPS 以平衡功耗占用,因为高刷必然带来更频繁的 GPU 任务提交,使得 GPU 占用提升。

    2.1K00

    iOS 测试 | iOS 自动化性能采集

    不要为小事遮住视线,我们还有更大的世界 前言 对于iOS总体生态是比较封闭的,相比Android没有像adb这种可以查看内存、cpu的命令.在日常做性能测试,需要借助xcode中instruments...但是借助instruments比较麻烦、又不能提供命令行.在持续集成中,很难时时的监控app的性能指标.并且现在app发版一般是2周左右,留给做专项测试的时间更少了,那么做核心场景性能测试,肯定是来不及的...性能采集项 app中基本性能采集项,内存、cpu、fps、电量等,因为自动化采集中手机设备是插着电脑充电的,所以不能采集电量数据....已有工具 instruments是官方提供的,不能做到自动化采集 腾讯gt,需要在app中集成sdk,有一定的接入成本 第三sdk,类似腾讯gt需要在app集成,可能会有数据泄漏风险 脚本开发 上述的已有工具都不满足...nohup xcrun simctl spawn booted log stream --level=debug >${logpath} & 代码插入到工程中 因为在持续集成中,每次打取的代码都是不带性能测试代码

    2.8K31

    从底层技术到直播美颜SDK插件的全流程开发指南

    技术难点:如何在手机等低性能设备上高效运行,尤其是当直播内容为60fps时,如何保证每一帧的美颜处理不超过16.7ms。...三、直播美颜插件开发全流程(一)项目需求分析与技术选型在开发直播美颜插件之前,首先需要明确产品需求和功能范围。常见的美颜功能包括:l 基础美颜:磨皮、美白、亮眼、红润等基础功能。...限制每秒帧率(如30fps),在高性能和节能模式之间找到平衡点。ii. 通过人脸关键点检测,只对面部区域进行处理,而不对整个图像做全局运算。2. 美颜参数的调优a....适配主流机型,确保在iOS、Android以及不同品牌的设备上运行正常。(六)插件的部署与上线1. 插件封装a....在App Store和Google Play上发布应用,确保美颜插件的最新版本可随App的更新一同上线。b. 定期更新美颜插件的功能,修复潜在的Bug和安全漏洞。

    2.2K10

    基于tidevice采集iOS性能数据

    背景 在iOS性能专项测试会进行采集iOS性能数据,常见性能数据指标: 内存、CPU、FPS、网络、磁盘等。...instruments工具提供了很多小工具,比如测试CPU、启动时间、内存泄漏分析,instruments工具更多是面向开发者使用的,对于测试人员如果想要好,还是有一定难度。...在appstore下载的app启动性能采集,会报错需求开发者签名。 但是可以看出instruments工具的一些问题: 工具定位比较专业,小白比较难入手。...fps {'fps': 46, 'value': 46, 'timestamp': 1655023837471} gpu {'device': 22, 'renderer': 20, 'tiler':...perf.start("tv.danmaku.bilianime", callback=callback) time.sleep() perf.stop() 输出数据格式和命令行输出一致, 在脚本中设置

    2.3K21

    实践-做一个会性能调优的好猿

    管理内存是app开发中最重要的一个方面,对于开发者来说,在程序架构中减少内存的使用通常都是使用Allocations去定位和找出减少内存使用的方式,接下来谈一下内存泄漏的两种情况 第一种:为对象A申请了内存空间...在测试的过程中,第一次加载时,开启光栅化的layer会显示为红色,这是很正常的,因为还没有缓存成功。但是如果在接下来的测试,。...1483622278645630.png 在 instruments 中,虽然选择了 Leaks 模板,但默认情况下也会添加 Allocations 模板.基本上凡是内存分析都会使用 Allocations...对于静止不变的内容,我们不需要考虑它的刷新率,但在执行动画或滑动时,fps的值直接反映出滑动的流畅程度....小结 APP性能调试在App的开发中是很重要的,后续有新的收获或者新的方法用到,会持续更新的。 ---- 本文参考文章 iOS 性能调优,成为一名合格iOS程序员必须掌握的技能

    1.3K20

    移动端性能测试必备工具PerfDog性能狗

    致移动游戏&应用性能测试分析的伙伴们: 你是否会因移动游戏&APP性能问题,而备受煎熬? 你又是否因寻找性能测试分析工具,而彷徨迷茫? 你是否因工具需要,而尝试各种ROOT/越狱?...… 备受煎熬的时候一去不复返了, 因为移动全平台性能测试分析神器来了, 它为移动游戏&APP测试分析而生, 它就是PerfDog性能狗! 背景: 在项目研发支持过程中,经历如上障碍和痛苦。...1) Avg(FPS):平均帧率(一段时间内平均FPS)    2) Var(FPS):帧率方差(一段时间内FPS方差)    3) Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数...) Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数) Jank(1s内卡顿次数。...安装模式下,在测试过程中,由于系统资源紧缺会kill PerfDog显示app(手机界面性能数据显示),但不影响正常测试功能。 4. WIFI模式:只能在WIFI模式测试功率等信息。

    3.6K40

    惊险但幸运,两次!| 肘子的 Swift 周报 #0109

    正当我们决定取消外出用餐时,她突然开始剧烈发抖,但额头仍是凉的。测量血氧后发现指标在快速下降——即使立即开始吸氧,最低时也掉到了 78。...在例行心电图检查中,医生意外发现他有房颤,心率在 130–170 之间剧烈波动。令人吃惊的是,他本人毫无不适感。事后他说,今年 5 月体检时医生就提醒过有房颤,但他没当回事,也没有告诉我们。...“Optimize your app’s speed and efficiency” 活动中的 Q&A 内容,涵盖 SwiftUI 性能(闭包捕获优化、Observable 使用、@Binding vs...本次 Q&A 展现了 Apple 工程团队在性能调优层面的实践取向:通过细节分析与工具驱动,让优化从“黑盒经验”转变为“可度量、可验证的工程流程”。...Metal Lab - 基于 Apple Metal API 生态的中文图形学社区[30] 在中文互联网上,关于 Metal 的教程资源非常稀少,尽管 Apple 官方提供了详尽的文档和示例代码,但这些文档对于国内开发者而言往往语言晦涩

    20810

    原生 APP 的性能测试

    常用的性能测试工具:针对 iOS 和 Android 平台,有一些官方和第三方工具可以帮助进行性能测试:iOS (使用 Xcode Instruments):Time Profiler: 分析 CPU...Core Animation: 帮助分析 UI 渲染性能,找出帧率下降的原因。Network: 监控网络请求和数据传输。Energy Log: 分析电量消耗情况。...自动化测试框架(如 Appium, Espresso, XCUITest)可以结合性能监控工具,在自动化脚本执行过程中收集性能指标。...可以在稳定受控的环境下进行,也可以在不同网络条件下进行。收集和分析数据: 使用工具收集性能数据,并进行详细分析,找出性能瓶颈。定位和优化问题: 根据分析结果,定位代码中的性能问题,并进行优化。...持续监控: 在应用发布后,使用 APM 工具持续监控应用的性能表现。原生 App 的性能测试是一个复杂但至关重要的过程,需要贯穿于整个开发生命周期,而不仅仅是在开发后期进行。

    93210

    iOS的三重缓冲和微型口吃(micro stuttering)

    所以这种情况下,FPS 基本在 30 左右; 再来看一个严重掉帧的情况: 严重掉帧 如上图,蓝色画面停留了 9 帧,而 commits 频率很正常,耗时也很短,所以这肯定不是 CPU...即:游戏/app 的帧率(如40FPS/25ms一次) FPS/16ms) 表现: image.png 原因:FPS虽然高,但是FPS不一致导致人眼视觉上看起来更卡顿...降低帧率之后 做法,就是使用 Metal 中的 Api 来设置固定的帧率: 保持帧率一直 核心点:在自己 App/游戏的最大能力范围内,保持帧率的一致; 因此,此种方案,帧率从...不使用 Metal 框架时的另外一种做法: CADisplayLink 但是这种做法需要注意 CPU 的使用,每秒刷新 60 次相当于执行 60 次 commit,如果 commit...理想情况: 理想情况 上图是静止画面时做的测试。如果不适用固定刷新频率,那么 FPS 基本上就是 0。而上图就是采用了固定 60hz 的刷新频率。

    77020

    原生APP的性能测试和优化

    3.滚动性能 (Scrolling Performance):帧率 (Frames Per Second, FPS): 滚动列表、内容时的流畅度,目标是达到60 FPS或更高。...常用的Instruments包括: Time Profiler: 分析CPU使用情况。 Allocations: 分析内存分配和泄漏。 Leaks: 检测内存泄漏。 Network: 分析网络请求。...Android - Android Studio Profiler: 集成在Android Studio中的性能分析工具,提供CPU、内存、网络、Energy等方面的性能分析。...资源懒加载 (Lazy Loading): 只在需要时加载图片和资源,减少应用启动时的加载负担。...结合用户反馈: 用户在使用过程中遇到的性能问题也是重要的参考依据。迭代优化: 性能优化是一个持续的过程,需要不断地进行测试、分析和改进。

    95910

    直播APP的性能优化-礼物篇

    这次带来,对直播APP性能优化的总结,以QA的形式总结。 欢迎关注文集-直播Live 实现方式 1、Q:礼物动画如何实现?...3、Q:CADisplayLink对应的屏幕刷新和Xcode的FPS是什么关系?...A:CADisplayLink对应的是屏幕刷新帧率,一般60FPS; xcode的FPS是真实显示的帧率,只要一帧处理的时间超过16ms,显示帧率就不会为60FPS; 4、Q:小礼物的连击效果如何实现...连击过程中,可以不断往桶里放礼物。如果连击完成,桶里没有礼物,开始放下一个桶的礼物。 实现上,给礼物数字放大缩小动画设置delegate,在stop回调的时候进行上述的逻辑判断即可。...这些QA都是优化过程中的一些问题和解决方案,如果有建议和疑问欢迎交流。

    2.4K60

    APP性能测试—帧率

    当一张张独立图片切换速度足够快时,我们的眼睛就会以为这是连续的动作,这个就是视觉暂留现象。 FPS即Frames Per Second(每秒显示的帧数),用于测量显示帧数的度量。...并且在设置-开发者选项-监控-GPU呈现模式分析-勾选上In adb shell dumpsys gfxinfo ? 在PC上打开cmd窗口,启动待测应用。...window|grep mCurrentFocus mCurrentFocus=Window{e633a66 u0 com.youku.phone/com.youku.v2.HomePageEntry} 在App...:\Users\Shuqing\Desktop\fps.txt 在PC导出的路径可以看到生成的数据文件fps.txt 数据分析 打开fps.txt可以看到采集的原始数据如下所示, Total frames...注意:Xcode 9之后打开CoreAnimation选项(必须真机) 一般而言,当用户操作时,如果fps帧数小于40,则说明存在卡顿的情形。 ?

    5K41

    初识PerfDog

    小编最近刚接触了一款性价比较高的性能评测工具-PerfDog,这是腾讯旗下的一款移动全平台iOS/Android性能测试及指标分析工具平台,简而言之就是测试采集手机在运行App时的性能指标数据:FPS、...Jank、FTime、CPU、GPU、Memory、Battery 、Network、CTemp等性能参数,从而快速定位分析App的性能问题,小编在这里主要介绍下相关名词含义、使用技巧及案例分析。...通常,要避免动作不流畅的最低阈值是30/FPS,iOS系统中正常的屏幕刷新率为60Hz(60次每秒)。...三、案例分析 ? 以小编所在项目组某个功能为例,对FPS、CPU使用率及内存占用率进行分析。 ?...冷启动首次进入功能页面时,FPS=60,且在该页面操作过程中稳定维持在60左右,无卡顿情况,退出页面后更新为0;AppCPU在使用过程中维持在6%~8%,退出页面后逐渐下降为0%;进入页面前内存53M,

    3.8K21

    Claude Code iOS开发子代理深度实战:打造你的苹果生态架构师

    专精苹果生态集成、性能优化和App Store指南。在iOS开发和优化时主动使用。...测试和反馈收集 - App Store Connect分析工具 - A/B测试功能优化 - Crashlytics崩溃报告 - Instruments性能监控 构建原生体验的iOS应用,充分利用苹果生态的全部能力...var name: String deinit { print("\(name) 被自动清理了") } } 三、5分钟快速配置指南 步骤1:打开子代理管理 # 在Claude...Code中输入 /agents 步骤2:创建iOS专家 点击 "Create New Agent" 选择 **"User-level agent"**(全局可用) 步骤3:粘贴配置 选择上面的英文版或中文版配置...子代理会自动实现: Instruments性能分析 图片懒加载 列表虚拟化 内存缓存策略 后台任务优化 Q4:如何确保通过App Store审核?

    96412

    iOS性能优化系列篇之“列表流畅度优化”

    所以**优化方法也需要分别对CPU和GPU**压力进行评估和优化,在CPU和GPU压力之间找到性能最优的平衡点, 无论过度优化哪一方导致另一方压力过大都会造成整体FPS性能的下降。...图片优化 在大多数app中,图片绝对是使用最频繁的资源之一,我们知道磁盘和网络的加载速度和内存比要慢很多,而一般图片都比较大,I/O十分耗时。...我们可以用instruments Core Animation 的Misaligned Image debug选项来发现此问题。...中我们可也看到列表滑动过程中的FPS,其中有一些很有用的debug选项,帮助我们找到代码中有性能问题的代码。...最好还是用 Instruments 比对开启前后的 FPS 来看是否起到了优化效果。

    3.3K30

    appium+python自动化60-appium命令行参数

    ; 默认(console [:file]):debug [:debug] —log-level debug —log-timestamp 假 在控制台输出中显示时间戳 —local-timezone...乐器 —debug-log-spacing 假 在日志中添加夸大间距以帮助进行目视检查 —suppress-adb-kill-server 假 (仅限Android)如果设置,则阻止Appium杀死...改用newCommandTimeout上限 -k, —keep-artifacts 假 [DEPRECATED] - 无效,trace现在默认在tmp目录中,并在每次运行前清除。...—app-activity 空值 [DEPRECATED] - (仅限Android)要从包中启动的Android活动的活动名称(例如,MainActivity) —app-activity MainActivity...假 [DEPRECATED] - (仅限Android)包含时,禁止在重新启动前停止应用程序 —calendar-format 空值 [DEPRECATED] - iOS模拟器的(仅iOS)日历格式

    3.5K10
    领券