linux - 什么是 "stack hog"

标签 linux kernel

在谈论 Linux 内核时,“stack hog”是什么意思?

我在一些 Linux 内核书籍(Wolfgang Mauerer 的 Professional Linux Kernel Architecture)上读到了这个概念,但是“stack hog”到底是什么意思?谢谢。

最佳答案

“Stack hog”是一个非正式名称,用于描述使用大量自动存储(也称为“堆栈”)的函数。究竟什么算作“占用”因执行环境而异:通常,内核级函数对堆栈空间有更严格的限制——只有几千字节,因此在内核模式下被认为是“堆栈占用”的函数可能会变成“好的”公民”在用户模式下。

函数成为堆栈占用者的一个常见原因是在自动内存中分配缓冲区或其他数组。这更方便,因为您不需要记住释放内存和检查分配结果。您还可以在分配本身上节省一些 CPU 周期。缺点是可能会溢出堆栈,从而导致内核级程序出现 panic 。这就是为什么“堆栈占用”的常见补救措施是将您的一些缓冲区移动到动态内存中。

关于linux - 什么是 "stack hog",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538412/

相关文章:

linux - 制作一个Linux操作系统

c - 添加系统调用时地址错误

c - 具有内存映射 I/O 的 C 指针的奇怪行为

linux - 在什么情况下 phys_base 不为 0?

linux - 为什么linux版本的系统二进制文件与系统发布版本不一致?

linux - 错误 : Unable to write pid file Mosquitto v2. 0.3

linux - 加载使用 ptxdist 通过 i586_qemu 配置生成的镜像的虚拟机快照时发生内核 panic

python - 如何让python程序使用不同的安装方式

linux - 如何在 Mac OSX Snow Leopard 上修复 bash 中的路径变量

linux - bash:显示绝对路径,并在提示中解析符号链接(symbolic link)