我对自己的无知表示歉意,但对于线程是如何工作的基本知之甚少。我正在编程一个吉他英雄,并且我意识到我加载的第一首音乐让我获得了巨大的性能下降。如果我重新启动相同的音乐或加载另一个音乐,则可以。如何检查程序执行期间正在创建/删除哪些线程?
所以我想它应该是与资产相关的创作,这是我忘了预加载。我运行了gDEbugger,结果发现它在fps开始下降时打印出了一个荒谬的“Thread Created/Thread Terminated”。当这些消息停止时,fps再次上升。问题是:如果我的游戏创建这些线程,我不知道为什么,我只创建一个用于加载资源的线程,我开始加载资源并在完成时停止。也许我正在搞这个话题。 gDebugger有一些字段,它们保存有关哪个dll创建它的线程信息,但所有字段都填充了“N/A”。即来到我的脑海
一种可能性是,欢乐合唱团(我使用的OpenGL扩展其)正在创建它们。但我不知道该怎么看。我希望有人知道一个工具来调试这些线程。
在此先感谢。
您使用的是.NET吗?只需在项目文件中快速搜索并查找单词“线程”(不区分大小写)。线程创建的地方不可能有很多地方,所以请注意并在这些地方进行调试。如果你没有创建线程,那么你正在使用的一些代码可能正在创建它们,那么你使用的是第三方库还是一些预先存在的代码? – Kiril
什么平台和语言? – mity