0

我有一个 OpenGL 菜单,它使用滚动视图来移动项目。还有与它们一起移动的 UILabel。

这在 iPad 2 上完美运行,在 iPad 1 上有点慢,但我可以接受。

在 ipad3 上,情况更糟。似乎滚动视图移动几个视图只是用 OpenGL 杀死它。

我看到人们提出了一些建议,所以在我放入滚动视图(包括滚动视图)的每个视图中,我都这样做了

// Performance!
    self.titleLabel.opaque = YES;
    self.titleLabel.clipsToBounds = NO;
    self.titleLabel.layer.masksToBounds = NO;
    self.titleLabel.autoresizesSubviews = NO;
    self.titleLabel.layer.shouldRasterize = YES;
    self.titleLabel.layer.rasterizationScale = [UIScreen mainScreen].scale;

我是否遗漏了什么,我想不出任何可以提高 OpenGL 性能的东西。我可以尝试在项目离开屏幕时隐藏它们,但只有 1 或 2 个项目离开屏幕

4

1 回答 1

4

iPad 3 上的视网膜显示屏的像素是 iPad 2 的四倍,但它的 GPU 处理能力却没有四倍。我一直被在 iPad 2 上运行良好但在 iPad 3 上太慢的东西所困扰。在我的客户的员工开始使用 iPad 3 之前,我有一个发货的 iPad 应用程序(企业发行版)运行良好。然后他们注意到该应用程序在某些区域太慢了。我不得不回去,分析我在应用程序中所做的工作以找出瓶颈,然后重新设计应用程序以避免该问题。事实证明这是一个简单的修复。每次更新屏幕时,我都会绘制大量模糊的像素。当我进行优化以在每次更新时绘制更少的屏幕区域时,该应用程序在 iPad 3 上的速度已经足够快了。

从您的问题中包含的信息中,我看不到您的问题的最终解决方案。我所能提供的就是你优化你的OpenGL代码。最新版本的 Xcode 有一些用于优化 OpenGL 的出色工具,但是解释如何使用它们对于这个答案来说太大了。Apple 在 WWDC 上提供了一些关于 OpenGL 优化技术的精彩视频,在其开发者网站上提供了 Tech Talk 视频集。

于 2012-07-23T13:26:33.700 回答