我是计算机编码的新手,刚刚完成了对应用程序的编码并在3G和3GS上进行了测试。在3GS上,它在模拟器上正常工作。但是,当我试图在3G上运行它时,应用程序变得极其缓慢。我不确定是什么原因,我希望有人可以对我有所了解。
通常,我的应用程序有几个视图控制器类,其中一个是标题页,一个是主页面,一个是设置等。我使用了一个溶解从标题页转换到主页。但即便是这种简单的过渡也表明3G上的表现不顺畅!我的应用程序的另一部分涉及通过放大图像放大图像,通过推送或在接收触摸事件时溶解来切换图像,将照片保存到照片库以及存储和检索文件夹中的一些照片以及SQlite数据库中的一些数据,每个都表现出不顺畅的行动。
与一些沉重的图形或重型数学应用程序相比,我认为我的很简单。我完全不知道为什么应用程序表现得如此缓慢和不顺畅,以至于它在3G上几乎没用。任何帮助/方向将不胜感激。谢谢你的帮忙。
答案 0 :(得分:6)
您可能希望尝试使用Shark对应用程序进行概要分析,以找出性能瓶颈所在。
答案 1 :(得分:1)
我不知道它与你的情况有多相关,但是我的游戏(无耻的插件)MultiMaze在图形方面非常苛刻,并且在我的3GS上工作得非常好。但是当我在3G上尝试时,帧速率下降到冰上10-20 fps。我将整个代码库从CoreGraphics移植到OpenGL ES,这让世界变得与众不同。它现在在我的3GS上运行在极限(60 fps)并且在3G上非常接近它。
答案 2 :(得分:1)
你使用了大量内存吗? 3G拥有128MB,而3GS拥有256MB RAM。
你有记忆警告吗?在我的调试版本中,我在didReceiveMemoryWarning中有一个NSLog,所以我可以看到/当我收到警告时。
编辑:检查照片的大小,它们是针对iPhone屏幕调整大小还是原始尺寸?
答案 3 :(得分:0)
我的解决方案是创建一个包含所有内容的临时复合视图,并在开始任何动画之前将复合视图作为图像放在全屏视图中。它延迟了开始淡入淡出的时刻,但现在褪色本身更加顺畅。