PlayN - iOS 上的渲染性能不佳

Posted

技术标签:

【中文标题】PlayN - iOS 上的渲染性能不佳【英文标题】:PlayN - Bad rendering performance on iOS 【发布时间】:2013-01-17 20:06:29 【问题描述】:

我们有一款游戏在 android 上运行相当流畅,但在 ios 上运行速度非常慢,尤其是在 iPhone 4 上。我们发现了一些候选者可能会延迟游戏渲染,但整体性能仍然很差。

可以写下以下见解:

我们很确定 PlayN 渲染循环中的某些东西可能是性能不佳的主要原因。禁用物理模拟和游戏更新计算的影响是微乎其微的,而在 Android 上它是计算时间的 70%。 对屏幕分辨率(视网膜/非视网膜)没有显着依赖性,因此可以消除填充率不足的问题。 避免使用 CanvasLayers 和 SurfaceLayers 影响不大 - 大多数游戏只是移动 ImageLayers。 矢量文本标签渲染(来自 Triple Play)稍慢但边缘化。 复合操作更慢,但仍不是主要原因。

问题/s:

您是否知道任何其他 PlayN 操作在 iOS 平台上可能会很慢并且应该(并​​且可以)避免?有什么方法可以让 XCode 分析器获取符号以更好地了解游戏中的主要问题?是否有任何其他工具可以用于 PlayN 内部分析?

感谢您遇到 iOS 性能问题。

【问题讨论】:

使用仪器来识别瓶颈。不要假设,测量! 我们尝试过,但在带有调试版本的 Instruments 中没有符号。谁会猜到它必须是发布版本才能显示符号。现在很明显,主要原因是物理。 关于 iOS PlayN 性能的一些进一步见解在线程 groups.google.com/d/topic/playn/RobFg8Lm7jg/discussion 中讨论 【参考方案1】:

不得不说,GWT JBox2d(在 PLAYN v1.4,v1.5 最新版本中)在 Android 上非常慢。 只需添加 >50 个物体,它就会开始挂起并降低帧速率。

真的在考虑 Nape 或原生库 ... Google -_-

【讨论】:

是的,它很慢,但可以根据您的情况进行优化。例如,通过调整模拟步长、迭代次数、用传感器替换动态物体并在发生碰撞时将它们替换回来等。

以上是关于PlayN - iOS 上的渲染性能不佳的主要内容,如果未能解决你的问题,请参考以下文章

H264解码性能不佳

Django 1.11 中表单渲染性能不佳

在 Android 中使用带有 OpenGL ES 的 VBO 性能不佳

Xamarin.iOS 自定义渲染器调用 SetNativeControl 的性能很慢

使用 CUDA-OpenGL 互操作时,NPOT 纹理会导致渲染效果不佳

iOS性能优化-离屏渲染