Как определить скорость процессора iPhone? - PullRequest
4 голосов
/ 20 сентября 2009

У меня есть эстетический элемент пользовательского интерфейса, отражение, которое хорошо работает на iPhone 3Gs и iPod Touches, но слишком медленно на 3G и предыдущих версиях. Как наилучшим образом определить скорость процессора, чтобы отключить эту функцию?

Ответы [ 4 ]

8 голосов
/ 20 сентября 2009

Вместо того, чтобы пытаться определить скорость, вы можете узнать, на какой модели 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]) даст вам аппаратную модель .

4 голосов
/ 20 сентября 2009

Смотрите это сообщение: http://www.iphonedevsdk.com/forum/iphone-sdk-development/4960-how-identify-device-user.html#post111621

Я думаю, что это даст вам именно то, что вы ищете.

1 голос
/ 20 сентября 2009

Лично, если проблема заключается в том, что отражение на медленных устройствах работает медленно, я бы потратил время на оптимизацию отражения, а не на обнаружение устройства. Простое отражение не должно быть таким интенсивным, если процессор правильно спроектирован, основная часть работы должна выполняться на GPU.

0 голосов
/ 29 сентября 2009

То, что я в итоге сделал, было рассчитать одну итерацию моей «медленной» рутины. Если это занимает более 0,5 секунды, я решаю, что процессор слишком медленный, и выключаю его.

Чтобы пользовательский интерфейс не сбивался с толку, я добавляю настройки для переключения этой подпрограммы, и если я отключаю ее и пользователь выбирает, я отображаю сообщение о том, что «функция» интенсивно использует процессор и может иметь некоторые аспекты приложения кажутся вялыми, и они могут захотеть оставить его. Если они все равно его включат, это их выбор. Я проведу тестирование с помощью моих бета-тестеров, чтобы понять, не слишком ли это запутано.

Следующим шагом является оптимизация, но до сих пор я не смог сделать это намного быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...