gpt4 book ai didi

iphone - CALayer的效率和极限是多少

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:47 25 4
gpt4 key购买 nike

在我的 iPhone 应用程序中,我需要显示大量(最多 150 个)10x10 像素的小点,它们会在屏幕上单独移动。它们不需要以任何方式平稳移动,但需要每秒左右更新一次。目前,我将其实现为每秒重绘的单个 CALayer。

但我知道 CALayers 非常高效,因为它们映射到 GPU 硬件。所以我想知道为每个点创建一个单独的 CALayer 并通过设置它们的位置属性来移动它是否会更有效(就电池使用而言)。

所以我想知道您是否有这方面的经验。 CPU 要做的事情更少,而 GPU 要做的事情更多。 GPU 硬件还能处理多少 CALayer?

如果我让它们分开 CALayers,我也可以轻松地为它们制作动画,这样看起来会好得多。这会消耗更多能源吗?

在我的情况下更糟糕的是,我目前为它们使用 CATiledLayer,最多暴露 4 个图 block 。这也意味着我需要在每次更新时重绘它们 4 次。

最佳答案

那里。我遇到了和你一样的问题。就我而言,我在条形图中绘制了 80 条左右的条柱。以前,我们为每个立管使用一个 UIView(实现了 drawRect),后来我决定为每个立管使用 CALayer(没有实现其 drawLayerInContext)来制作动画。酒吧号码为 80,我发现1. UIView 方法消耗更多内存(因为它在 drawRect 中请求 cgcontext)。2. UIView 方法具有更好的动画响应性。就我而言,UIVE FPS 约为 60,但 CALayer 约为 34。

后来,我尝试了一个条数较少(40、30 等)的情况,GPU 压力较小,我可以从 CALayer 动画中获得满意的 FPS 数。

这里我想说的是当你切换到“一层一个点”时,你需要检查动画是否像以前一样流畅。

关于iphone - CALayer的效率和极限是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com