在使用 Very Sleepy 进行分析时看到它是评分最高的项目后,我搜索了它,似乎每个人都得到了答案“这是一个系统功能,忽略它”。但是 Sleepy 对该函数的提示是这样说的:
Hint: KiFastSystemCallRet often means the thread was waiting for something else to finish. Possible causes might be disk I/O, waiting for an event, or maybe just calling Sleep().
现在,我的应用程序绝对会消耗 CPU,因此 33% 的时间都花在等待某事发生上,这有点奇怪。
我真的只是忽略它吗?
编辑:显然,77% 的调用来自模块 nvd3dnum 中的 QueryOglResource(?)。我认为可能是 nvidia Direct3D 的东西,即渲染。
最佳答案
不要忽视它。 Find out how it's being called . 如果你回顾调用堆栈到它进入你的代码的地方, 那会告诉你问题出在哪里。 随机停止它很重要(而不是使用断点),这样实际上花费大量时间的堆栈跟踪最有可能出现。
关于C++ 分析 : KiFastSystemCallRet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2624995/