0

無知で申し訳ありませんが、スレッドの仕組みについて基本的な知識はありません。ギター ヒーローのようなプログラミングをしていて、最初にロードした音楽のパフォーマンスが大幅に低下することに気付きました。同じ音楽を再起動するか、別の音楽をロードしても問題ありません。

ですから、アセットの作成に関連するものである必要があると思いましたが、事前にロードするのを忘れていました。gDEbugger を実行したところ、fps が低下し始めたときに、途方もない量の「Thread Created/Thread Terminated」が出力されることがわかりました。これらのメッセージが停止すると、ゲームの fps が再び上昇します。問題は、私のゲームがこれらのスレッドを作成している場合、理由がわからないのですが、アセットをロードするためのスレッドを 1 つだけ作成し、アセットをロードするために開始し、それが完了すると停止することです。たぶん、私はこのスレッドで何かを台無しにしています。gDebugger には、スレッドを作成した dll などのスレッドに関する情報を保持するフィールドがありますが、すべてのフィールドには「N/A」が入力されています。

私の頭に浮かんだ1つの可能性は、GLee(opengl拡張に使用しています)がそれらを作成しているということです. しかし、私はそれを調べる方法がわかりません。誰かがこれらのスレッドをデバッグするツールを知っていることを願っています。

前もって感謝します。

4

1 に答える 1

0

GLee である可能性があり、ロードしている音楽アセットと GLee が無関係である場合は、そのコードをスタブアウトして、スレッド作成メッセージが消えるかどうかを確認してください。

実際、このメソッドを他のライブラリに使用して、スタブを使用してインターフェイスを実装するか、コードの一部をコメントアウトすることにより、ブルート フォース スタイルで絞り込むことができます。

于 2012-05-31T22:52:41.023 に答える