我一直在寻找适用于 Windows 的 C 分析器,它可以让我检查在源代码行级别上花费的时间,而不仅仅是在函数级别上。这是为了在程序中找到可以优化的热点。
非常困倦看起来很适合这个目的。但是,在 Source 视图中,似乎每行代码所花费的时间实际上并不等于该函数的 100% 独占时间。
例如,Very Sleepy 说我们在函数中花费了 18.50 秒的独占时间。但是,将源视图中为该函数指定的所有持续时间加起来只加起来大约 10 秒。
这就是我编译程序的方式:
gcc -IC:/msys64_new/mingw64/include *.c -o plane.exe -g -gdwarf-2 -fno-omit-frame-pointer -O2 -Wall -Wno-unused -LC:/msys64_new/mingw64/lib -lShlwapi
然后,我通过 GUI 打开 Very Sleepy,并对运行过程进行精确采样 100 秒。
我正在使用非常困的 CS 0.90。我正在运行 Windows 7 并使用 MSYS2 的 Mingw-w64 子系统。
编辑:
我还注意到另外两件奇怪的事情。首先,Very Sleepy 显示了一些没有名称的函数,但确实将它们识别为配置模块的一部分。
其次,Very Sleepy 似乎认为一些变量实际上是函数。例如:
extension_module_file_suffix
不是函数,而是变量。这是怎么回事?