代码之家  ›  专栏  ›  技术社区  ›  mahboudz

如何检测iPhone的CPU速度?

  •  4
  • mahboudz  · 技术社区  · 16 年前

    我有一个美观的UI元素,一个反射,它在iPhone3GS和iPodtouch上运行良好,但在3G和更早版本上运行太慢。如何最好地检测CPU速度以便禁用此功能?

    4 回复  |  直到 16 年前
        1
  •  8
  •   Alex Reynolds    16 年前

    您不必尝试检测速度,而是可以找出应用程序运行的是哪种型号的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 .

        3
  •  1
  •   Brad The App Guy    16 年前

    就我个人而言,如果手头的问题是反射在sower设备上运行缓慢,我会花时间优化反射,而不是进行设备检测。一个简单的反射不需要是cpu密集型的,如果设计正确,大部分工作应该在GPU上运行。

        4
  •  0
  •   mahboudz    16 年前

    我最后做的是计时我的“慢”程序的一次迭代。如果时间超过0.5秒,我会判断CPU太慢,然后将其关闭。

    为了使UI不混乱,我添加了一个首选项来切换该例程,如果我将其关闭,并且用户选择,我会显示一条消息,说明“功能”是CPU密集型的,可能应用程序的某些方面看起来很慢,他们可能希望将其关闭。不管怎样,如果他们打开它,那是他们的选择。我会让我的测试人员运行这个测试,看看我是否把它弄得太混乱了。

    下一步是优化,但到目前为止,我还不能使它更快。