我正在读一本书“ Linux内核。开发。第三版”。罗伯特·洛夫(Robert Love)。
我在本书中读到的有关堆栈大小的内容:
在x86上,堆栈大小在编译时是可配置的,并且可以是 4KB或8KB。从历史上看,内核堆栈是两个页面, 通常意味着在32位架构上为8KB,在32位架构上为16KB 64位体系结构-此大小是固定且绝对的
我的VM具有ubuntu 16.06 64位4.15内核。所以我的堆栈大小应该是16000字节(16KB)
我尝试检查stackoverflow行为。我在使用16000多个字节的堆栈上创建数组。
class MyViewSet(mixins.CreateModelMixin, viewsets.GenericViewSet):
http_method_names = ['post']
# your code
我认为我应该看到堆栈崩溃或类似情况导致内核崩溃,但是我只能看到正确的输出。为什么不打破堆栈?
答案 0 :(得分:1)
您还可以使阵列易失,GCC不会对其进行优化。
<span>*</span>