у меня айфон софт такой медленный! - PullRequest
1 голос
/ 28 ноября 2009

Я перенес одно из своих приложений Mac на iphone. ВОТ ЭТО ДА!!! это медленно! Сначала я начал думать, что, возможно, у меня много доступа к диску. Но когда я начал искать, я понял, что просто выполняю офсетное чтение двоичного файла. Я прочитал только около 512 байт данных. У меня также есть массив, который огромен. Может быть, 2 МБ. Но почему это будет медленно? Он постоянно находится в памяти.

Я хотел бы услышать некоторые идеи от всех вас!

Ответы [ 2 ]

2 голосов
/ 28 ноября 2009

Если у вас есть серьезные проблемы с производительностью, первым инструментом для извлечения будет Инструменты . Начните с «Запуск с Performance Tool> CPU Sampler» и почувствуйте, где ваше приложение тратит свое время. После этого, проверьте Распределение объектов, чтобы увидеть, если вы бьете в память сильнее, чем следовало бы. iPhone является ресурсной средой по сравнению с Mac. Вещи, которые вы считаете быстрыми, могут существенно повлиять на производительность iPhone. Доступ к диску намного дороже. Даже распределение памяти может оказать значительное влияние (добро пожаловать в мир, с которым разработчики серверов сталкиваются каждый день). У вас есть только одно ядро, поэтому вещи, которые вы прикрепили в фоновом потоке, теперь конкурируют с вашим основным потоком. Это другой мир.

1 голос
/ 28 ноября 2009

Сложно отлаживать приложение через Stackoverflow, но есть много причин, по которым приложение для iPhone работает намного медленнее: ваши Mac-приложения работают, вероятно, на самых последних процессорах с тоннами памяти, а для iPhone оно очень ограничено (по слухам, 3GS) иметь 600 МГц процессор с 256 МБ ОЗУ). Кроме того, приложения Mac немного более щадящие, когда дело доходит до использования памяти; Что касается iPhone, важно создавать только те объекты, которые вам нужны, когда они вам нужны, и освобождать их, когда вы больше не используете их. Задержка отмены выделения объекта также приводит к некоторому замедлению.

Я рекомендую использовать инструмент профилирования производительности Instruments, который поставляется вместе с XCode и инструментами разработчика. Это даст хорошие советы о том, что узкие места.

...