1

私は他の誰かがこれを経験し、その後、欲求不満で自分の髪に火をつけようとしているときに解決策を見つけたことを願っています.

簡単に言えば、私は XCode 3.2.6 と SDK 4.2 を使用して Cocos2D アプリを作成していました。テストには 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 でコンパイルしたときほど強力に動作しませんが、XCode 4.3 で VBO サポートを無効にした方がはるかに優れています。これに関する問題は、有効にするとパフォーマンスが向上すると想定されるため、VBO サポートを無効にすることは推奨されないことです。

私が行ったテストのいくつかは、グラフィックが問題であることを示しているようです。アプリが 45 FPS の範囲に落ちると、画面上を移動する 12 ~ 20 個のスプライトしかありません。これらのスプライトを削除して、他のすべての操作を続行できるようにすると、VBO が有効になっていても 60 FPS に戻ります。XCode 3.2.6 で開発していたとき、100 以上のスプライトが (ビュー内とアウトの両方で) 移動することがあり、FPS は 60 のままでした。

要するに(申し訳ありませんが、それには遅すぎます)、まったく同じコードがXCode 3.2.6でコンパイルされた場合にどのようにうまく動作するか、XCode 4.3ではかなり悪い方法を知っている人はいますか? さまざまなコンパイラ設定を試しましたが、役に立ちませんでした。私の推測では、おそらく XCode 3 と XCode 4 の間で異なる値にデフォルト設定される簡単な設定がどこかにあると思います。

私は必死なので、あなたが持っているかもしれないアイデアを伝えてください。

ありがとう!

4

1 に答える 1

1

Xcode にプロジェクト設定を更新させることは可能ですか? Xcode 4.3 がリリースされる前から既知の正常なバージョンにロールバックし、遅いことを確認しましたか?

于 2012-04-25T17:42:05.570 に答える