linux - 如何查找 Linux 中存在的堆大小?

标签 linux heap-memory

我有一个在 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 设置上,我需要找出:

  1. 为此 kernet 配置分配/预留的堆大小是多少。

  2. 我怎样才能增加这个堆大小。是否需要重新构建内核/新版本的内核镜像?

最佳答案

我不知道 ARM Linux 的细节;但是,假设您在谈论用户空间应用程序而不是内核空间,那么本质上就没有“堆大小”。用户空间内存管理的“经典 unix 方式”是“扩展堆”——应用程序有一个有限大小的堆,当它需要扩展它时,它调用 brk() 函数。 我猜你在这个平台上没有交换和禁用过度使用 - 查看/proc/meminfo(或'top'的输出)以查看可用内存。

关于linux - 如何查找 Linux 中存在的堆大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354507/

相关文章:

java - dlopen() 中的 BUS_ADRERR

ruby-on-rails - AWS实例运行时间

c++ - 我似乎无法让 SDL 使用 sublime text

c - C 中释放内存后堆损坏

linux - 我可以使用 malloc 在 mmap 文件上分配内存吗

php - 使用 PHP 在 ubuntu 中添加用户

java - 缺少内存 : size of young generation includes only one survivor space

java - Scala 中 OutOfMemoryError 的原因是什么?

c++ - 在文件中使用 ofstream 时,C6262 堆栈在 C++ 中超出警告

c++ - 在C++中动态地将文件放在文件夹中