我们正在 VxWorks 6.x 中创建一个实时进程,我们希望限制可以分配给堆的内存量。我们如何做到这一点?
Benoit Lavigne
问问题
3638 次
2 回答
3
通过 rtpSpawn() 创建 RTP 时,您可以指定一个环境变量来控制堆的行为方式。
有3个环境变量:
HEAP_INITIAL_SIZE - 最初分配多少堆(默认为 64K)
HEAP_MAX_SIZE - 要分配的最大堆(默认为无限制)
HEAP_INCR_SIZE - 添加到 RTP 堆时的内存增量(默认为 1 个虚拟页面)
以下代码展示了如何使用环境变量:
char * envp[] = {"HEAP_INITIAL_SIZE=0x20000", "HEAP_MAX_SIZE=0x100000", NULL);
rtpSpawn ("myrtp.vxe", NULL, envp, 100, 0x10000, 0, 0);
于 2008-09-18T04:05:21.693 回答
0
这可以通过使用 HEAP_MAX_SIZE 环境变量来完成。如果设置了它,它会限制堆超过该大小的能力。但是,它不限制初始堆大小。
于 2008-09-18T04:11:08.043 回答