gpt4 book ai didi

c++ - 给定 64 位虚拟地址空间,有什么理由不在堆栈上声明 32KB 数组?

转载 作者:行者123 更新时间:2023-11-30 01:53:18 28 4
gpt4 key购买 nike

问题是不言自明的(我希望)。

我尽量避免在对象生命周期落在堆栈帧生命周期内的情况下新建/删除(malloc/free)。在我看来,缓存命中、分页等应该是相同的(堆栈 v/s 堆),不是吗?

当然,通常的细则适用:避免递归、在操作系统中设置堆栈限制等。

最佳答案

这实际上取决于操作系统、配置以及您是否使用线程以及它们是如何创建的。例如,linux 中的主线程具有无限堆栈(仅受限于 ulimit 中的配置),另一方面,AIX 上使用 pthread_create 生成的线程默认为96Kb 堆栈。

您需要查看您的目标架构和 API 来创建线程(如果您正在执行多线程)才能回答这个问题。

关于c++ - 给定 64 位虚拟地址空间,有什么理由不在堆栈上声明 32KB 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23270199/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com