ios – 如何调试超载backboardd?

ios – 如何调试超载backboardd?,第1张

概述我有一个UIView,一个子类CAShapeLayer的几个实例被添加到它的layer属性的子层. 我为每个这些层的UIBezierPath动画改变,这看起来很棒,性能优异,但是当我通过仪器中的Activity Monitor运行它时,在backboardd进程中命中了大约90%的CPU. 如何获取有关这里发生的更多信息? backboardd是GPU上核心图形/核心动画的幕后渲染,对吧?是否支持 我有一个UIVIEw,一个子类CAShapeLayer的几个实例被添加到它的layer属性的子层.

我为每个这些层的UIBezIErPath动画改变,这看起来很棒,性能优异,但是当我通过仪器中的Activity Monitor运行它时,在backboardd进程中命中了大约90%的cpu.

如何获取有关这里发生的更多信息? backboardd是GPU上核心图形/核心动画的幕后渲染,对吧?是否支持在某个地方进一步调试仪器?我可以用GCD做一些喜欢加载backboardd的东西吗?

编辑:在将其升级为与苹果公司的TSI之后,他们已经确认这是对这一数量的动画CAShapeLayer的“预期行为”.叹.他们提供了一个建议at this link,其中包括持续暂停和取消动画,以模拟较低的帧率. (因为它是每个displaylink锁定的动画框架的计算,踢的是backboardd)

-(voID)pauseLayer:(CALayer*)layer {    CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];    layer.speed = 0.0;    layer.timeOffset = pausedTime;}-(voID)resumeLayer:(CALayer*)layer {    CFTimeInterval pausedTime = [layer timeOffset];    layer.speed = 1.0;    layer.timeOffset = 0.0;    layer.beginTime = 0.0;    CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;    layer.beginTime = timeSincePause;}

最后,美味的苹果技术公司指出,动画帧率控制“将会提供一个体面的API增强请求,如”旁边“ – 所以我正在制作一个,and you should,too. 总结

以上是内存溢出为你收集整理的ios – 如何调试超载backboardd?全部内容,希望文章能够帮你解决ios – 如何调试超载backboardd?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1109203.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存