C++ 分析 : KiFastSystemCallRet

标签 c++ profiling verysleepy

在使用 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/

相关文章:

c - 为什么我们的软件在虚拟化下运行会慢很多?

c++ - 我可以在这里摆脱嵌套的 for 循环吗?

c++ - 'QObject& QObject::operator=(const QObject&)' 是私有(private)的

Python Line_profiler 和 Cython 函数

c - 使用 valgrind 和 gprof 分析 intel mkl 函数

c++ - Very Sleepy 分析器中花括号附近显示的时间测量值代表什么?

c++ - 如何检查字符串是否是另一个字符串的真子集

c++ - 在 omnetpp 中定义模块时出现问题

c++ - 比较应该相同的 C++ 程序运行的配置文件以检测分歧

C++ 在分析时在 ntdll 中发现性能问题 - 如何摆脱它?