我有一个在 ARM Cortex-A8 处理器板上运行的 Linux。内核的版本通过(uname -a)获取:
Linux 2.6.29-dirty #2 Fri Jan 29 16:54:21 IST 2010 armv7l 未知
调试我的一些应用程序由于 malloc() 失败而崩溃(我正在分配的大小很大),并且该板有 208 MB DRAM。在这个 Linux/board 设置上,我需要找出:
为此 kernet 配置分配/预留的堆大小是多少。
我怎样才能增加这个堆大小。是否需要重新构建内核/新版本的内核镜像?
最佳答案
我不知道 ARM Linux 的细节;但是,假设您在谈论用户空间应用程序而不是内核空间,那么本质上就没有“堆大小”。用户空间内存管理的“经典 unix 方式”是“扩展堆”——应用程序有一个有限大小的堆,当它需要扩展它时,它调用 brk() 函数。 我猜你在这个平台上没有交换和禁用过度使用 - 查看/proc/meminfo(或'top'的输出)以查看可用内存。
关于linux - 如何查找 Linux 中存在的堆大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354507/