2012-05-31 132 views
0

我對自己的無知表示歉意,但對於線程是如何工作的基本知之甚少。我正在編程一個吉他英雄,並且我意識到我加載的第一首音樂讓我獲得了巨大的性能下降。如果我重新啓動相同的音樂或加載另一個音樂,則可以。如何檢查程序執行期間正在創建/刪除哪些線程?

所以我想它應該是與資產相關的創作,這是我忘了預加載。我運行了gDEbugger,結果發現它在fps開始下降時打印出了一個荒謬的「Thread Created/Thread Terminated」。當這些消息停止時,fps再次上升。問題是:如果我的遊戲創建這些線程,我不知道爲什麼,我只創建一個用於加載資源的線程,我開始加載資源並在完成時停止。也許我正在搞這個話題。 gDebugger有一些字段,它們保存有關哪個dll創建它的線程信息,但所有字段都填充了「N/A」。即來到我的腦海

一種可能性是,歡樂合唱團(我使用的OpenGL擴展其)正在創建它們。但我不知道該怎麼看。我希望有人知道一個工具來調試這些線程。

在此先感謝。

+0

您使用的是.NET嗎?只需在項目文件中快速搜索並查找單詞「線程」(不區分大小寫)。線程創建的地方不可能有很多地方,所以請注意並在這些地方進行調試。如果你沒有創建線程,那麼你正在使用的一些代碼可能正在創建它們,那麼你使用的是第三方庫還是一些預先存在的代碼? – Kiril

+0

什麼平臺和語言? – mity

回答

0

如果你認爲它可能是高興的,如果這種高興是無關的,你加載的音樂資產,儘量刪空代碼並檢查是否線程創建的消息消失。

事實上,你可以使用其他庫這個方法來縮小它,強力的風格,無論是通過實現接口存根,或註釋掉的代碼部分的。

相關問題