ios – 如何调试超载backboardd?

前端之家收集整理的这篇文章主要介绍了ios – 如何调试超载backboardd?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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. 原文链接:https://www.f2er.com/iOS/335422.html

猜你在找的iOS相关文章