|
|
1
5
每个线程使用一个固定大小的堆栈,该堆栈在线程启动时创建。一般为512k/1m,但在启动时仅为虚拟大小。 然而,对于动态分配数据(malloc),它是一个进程范围的信息,而不是每个线程。注意,一些替代的malloc实现(比如tcmalloc)可以提供更高级的统计信息。 |
|
|
2
0
此外,操作系统本身可能会在单独的线程中释放内存,以加快对free()函数的调用,从而使收集正确的统计信息更容易编译 |
|
|
3
0
根据我使用pthread库的经验,如果线程是用默认属性创建的,那么它的堆栈大小是10 MB。它可能是特定于平台的。 如果您对减小堆栈大小感兴趣,可以使用pthread_attr_setstacksize()。为了估计堆栈大小的适当值,可以使用名为“checkstack.pl”的脚本。它在linux内核源代码中提供(在“scripts”目录下)。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |