我有一个美学的UI元素,一个反射,在iPhone 3Gs和iPod Touch上运行良好,但在3G和之前的速度太慢了。我如何才能最好地检测CPU速度,以便我可以禁用此功能?
答案 0 :(得分:8)
您可以找到正在运行的应用程序的iPhone或iPod Touch型号,然后在不是可接受的iPhone / iPod类型的情况下禁用该功能,而不是尝试检测速度。
为此,您可以将以下内容添加到您的应用程序中:
#import <sys/utsname.h>
- (NSString *) machineModel {
struct utsname systemInfo;
uname (&systemInfo);
return [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
}
致电NSLog(@"Type: %@", [self machineModel])
将为您提供hardware model。
答案 1 :(得分:4)
我认为这样可以完全满足您的需求。
答案 2 :(得分:1)
就个人而言,如果手头的问题反映在播种设备上的速度正在减慢,我会花时间优化反射,而不是进行设备检测。一个简单的反射不应该是cpu密集型,如果设计正确,大部分工作应该在GPU上运行。
答案 3 :(得分:0)
我最终做的是为我的“慢”程序的一次迭代计时。如果花费的时间超过0.5秒,我认为CPU太慢了,我将其关闭。
为了使UI不混淆,我添加了一个首选项来切换该例程,如果我将其关闭,并且用户选择,我会显示一条消息,说“功能”是CPU密集型的,可能是某些方面该应用程序似乎很迟钝,他们可能希望将其关闭。如果他们无论如何都打开它,这是他们的选择。我将通过我的beta测试人员运行此操作,看看我是否太过混乱。
下一步是优化,但到目前为止,我还没有把它做得更快。