Actionscript:在 iOS 上创建文本字段和填充的性能
Posted
技术标签:
【中文标题】Actionscript:在 iOS 上创建文本字段和填充的性能【英文标题】:Actionscript: performance of creating text fields and fills on iOS 【发布时间】:2018-01-15 01:06:24 【问题描述】:我很想知道我可以从 ios 上的 Air 获得什么样的性能。我有一个创建 30 个显示对象的类,每个显示对象有几个文本字段和一个填充。
在我的 PC 上创建每个显示对象大约需要 0.011 秒。这在 iPad Retina (A7) 上增加到 0.056。
根据我的调试,创建和格式化文本字段大约需要 0.004 时间。
当我达到 30 个显示对象时,0.056 变为 1.68 秒。
这是典型的吗?
有什么办法吗?
我已经跟踪了类的每个阶段,每个函数的执行时间都差不多,所以我认为某个特定阶段没有问题。
【问题讨论】:
【参考方案1】:欢迎来到移动设备的世界。它们的 CPU 功率都非常低(如果与台式机相比),而 Flash 使用 CPU 来正常渲染其内容。
您需要在屏幕上重绘的区域越大 - 性能越差 要绘制的对象越多 - 性能越差形状、描边、填充、字体 - 它们都是 Flash 需要渲染和绘制的矢量数据,因此它们都会对 CPU 使用造成严重影响,这也会导致大量电池消耗。这就是 Apple 很久以前就停止在其设备上支持 Flash 插件的原因。
然后,Adobe 宣布了 Stage3D,它允许(通过一定的工作量)利用 GPU 渲染,即使在台式计算机上也更快,并且实际上为移动设备上的 Flash/AIR 应用程序节省了时间。
长话短说,性能缓慢是原生 Flash 内容的现状。如果您想在移动设备上获得更好的性能和更快的应用程序,则需要继续使用一些支持 GPU 的框架,例如 Gamua Starling。
【讨论】:
谢谢,我阅读了您的 cmets 背面的更多内容,并找到了以下解决方案,实际上效果很好。我使用延迟为 1 的 setTimeout 来创建每个显示对象。因此,前 4 个显示对象在 0.2 秒内渲染,其余显示对象位于折痕下方,因此它看起来都已完全加载,并且在渲染时添加新对象时可滚动。 @Mar 好吧,随着时间的推移分散负担是一种解决方法。尽管如此,如果你正在构建一些严肃的东西,你迟早会遇到性能障碍。另外,我之前提到的电池问题。一旦用户发现您的应用程序正在耗尽电池电量,他们就不会喜欢它。他们根本不会喜欢它。我认为你应该认真考虑 GPU。以上是关于Actionscript:在 iOS 上创建文本字段和填充的性能的主要内容,如果未能解决你的问题,请参考以下文章