2012-04-25 3 views
1

Я надеюсь, что кто-то еще испытал это, а затем нашел решение, поскольку я собираюсь осветить свои собственные волосы в расстройстве.FPS Drop после обновления до XCode 4.3

Проще говоря, я создавал приложение Cocos2D с помощью XCode 3.2.6 и SDK 4.2. Я использовал два устройства для тестирования: iPhone 3GS и iPhone 4, как я полагаю, в IOS 4.2. При тестировании на любом устройстве я получал стабильные характеристики 60 FPS.

Первая катастрофа, когда я обновился до XCode 4.2. Без проблем я смог открыть свой проект непосредственно в этой новой версии и запустить его. Все одно и то же, за исключением того, что я сейчас в XCode 4.2. К моему ужасу и ужасу я обнаружил, что теперь я получаю FPS в диапазоне от 45 до 50, и он будет падать в 30-е годы, ни один из которых никогда не случалось раньше.

На данный момент я решил перейти на Lion, XCode 4.3 и SDK 5.1. К сожалению, это ничего не изменило.

Затем я обновил оба телефона до последней версии IOS, и все еще проблема с производительностью продолжалась.

Наконец, я обновил до последней версии Cocos2D, но безрезультатно.

Я пробовал ряд средств правовой защиты, связанных с режимами отладки и отладки, настройками компилятора и т. Д. Ничто не помогает.

Я нашел кое-что, что может быть подсказкой, но я не знаю достаточно об Open GL ES в это время, чтобы это имело большой смысл. На другом форуме кто-то пожаловался на ту же проблему и сказал, что если они отключили поддержку Vertex Buffer Object (VBO), она решила проблему. Я нашел, где это включено в Cocos2D, отключил его, и, к моему удивлению, я вернулся к 60 FPS. Приложение не работает так сильно, как это было при компиляции в XCode 3.2.6, но гораздо лучше с поддержкой VBO, отключенной в XCode 4.3. Проблема в том, что отключить поддержку VBO не рекомендуется, так как предполагается, что при включении повышается производительность.

Некоторые из проведенных тестов, похоже, указывают на то, что проблема связана с графикой. Когда приложение попадает в диапазон 45 FPS, у меня есть от 12 до 20 спрайтов, движущихся по экрану. Если я удалю эти спрайты и разрешу всем остальным продолжать работать, я вернусь к 60 FPS, даже с включенным VBO. Когда я развивался под XCode 3.2.6, я порой имел бы более 100 спрайтов, перемещающихся (как в режиме просмотра, так и снаружи), а FPS оставался на уровне 60.

Итак, короче (извините, слишком поздно для этого) , не знает ли кто-нибудь, как точно такой же код будет работать отлично при компиляции через XCode 3.2.6, но довольно плохо под XCode 4.3? Я пробовал много разных настроек компилятора безрезультатно. Я предполагаю, что есть некоторая простая настройка где-то, что, возможно, по умолчанию имеет другое значение между XCode 3 и XCode 4.

Я в отчаянии, поэтому, пожалуйста, передайте любые идеи, которые у вас могут быть.

Спасибо!

ответ

1

Возможно ли, что вы позволили Xcode обновить настройки вашего проекта? Вы вернулись к известной хорошей версии до того, как Xcode 4.3 был выпущен и проверен, что он медленный?

+0

После того как я обновился до XCode 4.2, я открыл свой существующий проект. Я помню, что XCode хочет проверить мои настройки, что я позволил ему сделать. Если бы во время этого процесса он вносил изменения, я не мог сказать, что конкретно это было. Не могли бы вы уточнить свой второй вопрос. Когда вы говорите «откат до известной хорошей версии», вы имеете в виду версию моего проекта или версию XCode? Мой проект начал работать медленно после того, как я обновился до XCode 4.2.Это было единственное изменение, кроме тех изменений, которые были внесены в настройки проекта после того, как я изначально открыл его в XCode 4.2. – Pluvius

+0

Вы имеете в виду приглашение Xcode «Проверить настройки», и оно действительно вносит изменения, если вы его разрешите. Я говорю о том, что вам следует вернуться к более ранней версии вашего приложения до того, как был выпущен Xcode 4.2, и посмотреть, есть ли у него эти проблемы * без внесения каких-либо изменений. – Jim

+0

Я схватил версию с нескольких месяцев назад. Я открыл его в Xcode 4, но на этот раз он не спросил меня о проверке настроек. Не знаю почему, как это было в прошлый раз. Короче говоря, та же проблема существует. Работает намного медленнее, чем в Xcode 3. Если я отключу поддержку VBO, производительность будет намного лучше. Так странно. Если у вас есть другие мысли, пожалуйста, дайте мне знать. Спасибо за вашу помощь. – Pluvius