2012-05-31 178 views
0

我对自己的无知表示歉意,但对于线程是如何工作的基本知之甚少。我正在编程一个吉他英雄,并且我意识到我加载的第一首音乐让我获得了巨大的性能下降。如果我重新启动相同的音乐或加载另一个音乐,则可以。如何检查程序执行期间正在创建/删除哪些线程?

所以我想它应该是与资产相关的创作,这是我忘了预加载。我运行了gDEbugger,结果发现它在fps开始下降时打印出了一个荒谬的“Thread Created/Thread Terminated”。当这些消息停止时,fps再次上升。问题是:如果我的游戏创建这些线程,我不知道为什么,我只创建一个用于加载资源的线程,我开始加载资源并在完成时停止。也许我正在搞这个话题。 gDebugger有一些字段,它们保存有关哪个dll创建它的线程信息,但所有字段都填充了“N/A”。即来到我的脑海

一种可能性是,欢乐合唱团(我使用的OpenGL扩展其)正在创建它们。但我不知道该怎么看。我希望有人知道一个工具来调试这些线程。

在此先感谢。

+0

您使用的是.NET吗?只需在项目文件中快速搜索并查找单词“线程”(不区分大小写)。线程创建的地方不可能有很多地方,所以请注意并在这些地方进行调试。如果你没有创建线程,那么你正在使用的一些代码可能正在创建它们,那么你使用的是第三方库还是一些预先存在的代码? – Kiril

+0

什么平台和语言? – mity

回答

0

如果你认为它可能是高兴的,如果这种高兴是无关的,你加载的音乐资产,尽量删空代码并检查是否线程创建的消息消失。

事实上,你可以使用其他库这个方法来缩小它,强力的风格,无论是通过实现接口存根,或注释掉的代码部分的。

相关问题