2

我们正在 VxWorks 6.x 中创建一个实时进程,我们希望限制可以分配给堆的内存量。我们如何做到这一点?

4

2 回答 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 环境变量来完成。如果设置了它,它会限制堆超过该大小的能力。但是,它不限制初始堆大小。

见第 31 页

于 2008-09-18T04:11:08.043 回答