首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一些帮助解释我的游戏的GlowCode配置文件

一些帮助解释我的游戏的GlowCode配置文件
EN

Stack Overflow用户
提问于 2012-04-07 06:00:51
回答 1查看 636关注 0票数 0

我们的前3个函数都显示为线程同步对象;主要是WaitForSingleObject()

这个函数是否非常繁重,即使用0来检查线程的状态也是如此?非常关注这些函数上的值,在selftime中显示的值比它分析的任何其他值多2个数量级。或者可能Glowcode只是在这个函数上抓狂了,因为当它看起来像一堆代码指针时,它恰好就在那里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-07 10:58:32

首先,。

它存在的唯一原因是,有些人可能会在自己的代码中编写在CPU循环中花费太多时间的代码。你的程序是把所有的时间都花在求逆矩阵或做FFT上吗?

gprof被发明的全部原因,以及随之而来的分析器的雪崩,是因为真正的软件包含了许多在大老鼠巢中相互调用的子例程,到目前为止,花费太多时间的最简单的方法是进行本可以避免的子例程调用。自我时间不会暴露这些。

接下来,无论您查看的是Wall time还是CPU time,如果WaitForSingleObject()在很大一部分时间内处于活动状态,这意味着您的线程主要是在等待某些东西。你需要找出是什么。

有一个非常简单的方法来找出答案。只需按下Pause、Ctrl-C、Esc或任何使其在轨迹中停止的键,然后查看堆栈。调用堆栈上的每一行代码都代表一个未完成的请求,如果没有发出该请求,程序就不会等待。所以这就是你知道它在等待什么的方式。

如果您碰巧在它不在WaitForSingleObject()中的时候捕捉到了它,那么再做一次,可能会做几次。这似乎比分析更费力,但您可以在找到问题或做一些简单的事情之间进行选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10049730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档