![启用内核调试信息对系统性能有何影响?](https://linux22.com/image/67014/%E5%90%AF%E7%94%A8%E5%86%85%E6%A0%B8%E8%B0%83%E8%AF%95%E4%BF%A1%E6%81%AF%E5%AF%B9%E7%B3%BB%E7%BB%9F%E6%80%A7%E8%83%BD%E6%9C%89%E4%BD%95%E5%BD%B1%E5%93%8D%EF%BC%9F.png)
为了调试内核或使用 stap 等工具(https://en.wikipedia.org/wiki/SystemTap)内核必须在包含完整调试信息的情况下进行编译 - 即必须启用选项 CONFIG_DEBUG_INFO。
我想知道当使用调试选项编译内核时它如何影响系统性能?
我已经使用 linpack 基准测试测量了此类内核的 cpu 性能,但它没有改变。那例如呢?系统调用的速度或其他我不知道的事情?
答案1
将启用一些额外的调试信息,例如获取调用堆栈以及 gdb 调试所需的其他一些信息。
这会对性能产生轻微影响。但是您将主要通过使用大多数代码在内核空间中运行的工具来看到这一点。例如,检查文件复制的速度、创建多个线程并在多个线程之间切换等。
Linpack 是一个用于执行数值线性代数的软件库(用户空间)。大多数情况下,这会产生很少的系统调用或不进行系统调用。即与内核的最小交互。因此,使用 Linpack 测量的性能不会有太大变化。