我们正在VxWorks 6.x中创建一个实时进程,我们希望限制可以分配给堆的内存量。我们怎么做?
答案 0 :(得分:3)
通过rtpSpawn()创建RTP时,可以指定一个控制堆行为方式的环境变量。
有3个环境变量:
HEAP_INITIAL_SIZE - How much heap to allocate initially (defaults to 64K)
HEAP_MAX_SIZE - Maximum heap to allocate (defaults to no limit)
HEAP_INCR_SIZE - memory increment when adding to RTP heap (defaults to 1 virtual page)
The following code shows how to use the environment variables:
char * envp[] = {"HEAP_INITIAL_SIZE=0x20000", "HEAP_MAX_SIZE=0x100000", NULL);
rtpSpawn ("myrtp.vxe", NULL, envp, 100, 0x10000, 0, 0);
答案 1 :(得分:0)
这可以通过使用HEAP_MAX_SIZE环境变量来完成。如果已设置,则会限制堆超出该大小的能力。但是,它不会限制初始堆大小。