【问题标题】:C++ Profiling: KiFastSystemCallRetC++ 分析:KiFastSystemCallRet
【发布时间】:2010-04-12 20:03:08
【问题描述】:

在使用 Very Sleepy 进行分析时看到它是评价最高的项目后,我搜索了它,似乎每个人都得到了答案“这是一个系统功能,忽略它”。但是 Sleepy 对函数的提示说:

提示:KiFastSystemCallRet 通常意味着 线程正在等待某事 否则完成。可能的原因 可能是磁盘 I/O,正在等待 事件,或者只是调用 Sleep()。

现在,我的应用程序绝对在消耗 CPU,所以 33% 的时间都花在等待某事发生上,这有点奇怪。

我真的只是忽略它吗?

编辑:显然,77% 的调用来自模块 nvd3dnum 中的 QueryOglResource (?)。我认为这可能是 nvidia Direct3D 的东西,即渲染。

【问题讨论】:

  • 进一步检查调用堆栈,看看它是从哪里调用的

标签: c++ profiling verysleepy


【解决方案1】:

不要忽视它。 Find out how it's being called。 如果您将调用堆栈回溯到它进入代码的位置, 这会告诉你问题出在哪里。 随机停止它很重要(而不是断点),以便最有可能出现实际上花费大量时间的堆栈跟踪。

【讨论】:

    【解决方案2】:

    该功能对于分析器来说毫无意义,它基本上是整个系统功能范围的逻辑终点。你有什么功能调用它?等待多个对象?异步读取?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多