1

我一直犹豫要不要问这样的问题,因为我担心它太位于位置。

我想在 Meta 上询问它是否太位于位置,但我犹豫了……嗯……我确实需要一个答案。所以如果有问题我会删除。

我正在研究Very Sleepy,这是一个代码分析器,可以帮助我检测热点并锁定应用程序上的问题。

我只想知道为什么在非常昏昏欲睡的分析中有一些绿色和一些黑色?这是一个分析示例图像的链接:http: //www.codersnotes.com/images/3.png

我的猜测是绿色的是系统调用,黑色的只是“进程”调用。

4

1 回答 1

1

Very Sleepy 是开源的,因此您可以获得源代码,但几乎没有文档。没有那么多,大部分 5+ 兆字节的下载实际上并不是代码。

查看 src/wxProfilerGUI/CallstackView.cpp 源代码文件,当符号的isCollapseFunctionorisCollapseModule成员为真时,它看起来像是在绘制绿色。搜索这些符号会将您带到同一目录中的 database.cpp:

    sym->isCollapseFunction = osFunctions.Contains(sym->procname.c_str());
    sym->isCollapseModule = osModules.Contains(sym->module.c_str());

所以当符号是操作系统功能或模块时它是绿色的。看起来很准确,屏幕截图中的绿色符号确实是 Windows DLL 函数。从中得到的提示是,尝试优化该功能是没有意义的,您无法更改它。

于 2013-05-29T17:31:16.363 回答