Приложение iPod работает медленнее на модели 32 ГБ, чем на модели 8 ГБ - PullRequest
1 голос
/ 17 июля 2010

У меня большая проблема с производительностью на 32 ГБ модели iPod touch 3-го поколения.

Приложение является портом игры DS 3D.Рендеринг выполняется с помощью OpenGL ES 1.1.Он использует OpenAL для аудио и MPMoviePlayerController для видео.

Производительность на 8 ГБ iPod touch хорошая, он работает постоянно со скоростью более 30 кадров в секунду.Затем я протестировал его на 32-гигабайтной модели 3-го поколения и был потрясен, насколько медленно он работает.Первой проблемой, которую я заметил, был вступительный ролик.Видео было фрагментировано и зависло, кадры пропущены.

На уровне 3D производительность составляла около 15 кадров в секунду.Сцена имеет около 10000 вершин в буфере статических вершин и 7000 вершин в буфере динамических вершин.Динамические вершины обновляются в каждом кадре, но не во всех, но в той части, которая изменила последний кадр для анимации скелета.

Я играл с настройками сборки, включением / выключением большого пальца, оптимизированным для armv7 и т. Д., Сбез усилий.На модели 8 ГБ он продолжает работать очень быстро, а на модели 32 ГБ - отстой.

Затем я попробовал другую 3D-игру из магазина приложений (NOVA) на модели 32 ГБ.Он работает с хорошей производительностью, видео тоже.

Теперь я заканчиваю свои идеи.

Может кто-нибудь дать мне подсказку, в чем может быть проблема.

Спасибо за это и с наилучшими пожеланиями нежный

Ответы [ 2 ]

2 голосов
/ 17 июля 2010

Существует три поколения iPod Touch, с последним поколением, аналогичным спецификациям iPhone 3GS, в частности, вдвое больше памяти, более быстрый графический процессор и намного лучший графический процессор, чем 1-е или 2-е поколение.

Вы сравниваете другое оборудование, так как никогда не было модели третьего поколения 8 ГБ. Итак, что-то, из-за чего ваш код работает хуже на новом оборудовании - что на самом деле довольно удивительно. Мое предположение: это связано с GPU.

0 голосов
/ 18 июля 2010

iPod touch второго поколения имеет графический процессор, который изначально поддерживает OpenGLES1.1.

iPod touch третьего поколения имеет графический процессор, который работает с OpenGLES2.0 изначально и намного быстрее, но выполняет инструкции OpenGLES1.1 с помощьюпреобразование их в инструкции OpenGLES2.0.Ваше приложение, вероятно, использует инструкции 1.1, которые трудно эмулировать для драйвера графического процессора, используя инструкции 2.0

Примечание: это упрощенное объяснение

...