编译时候所需要的内存,一般来说是不需要太关注的。但是,如果希望在小设备上进行编译,这两个参数可能就会变得非常有用。虽然ggc-min- heapsize默认是实际内存的1/8,但是有时候,能使用的并不到1/8。这时候,就可以通过设置这个参数来以更小的内存进行编译。
设置这个参数的方式很多。例如通常的configure脚本,可以以CFLAGS的变量来设置。
root@com:~# CFLAGS=”$CFLAGS –param ggc-min-expand=0 –param ggc-min-heapsize=2048″ ./configure
另外顺便提一下mysql(5.0.89)的configure参数–with-low-memory。我本来以为也是用ggc-min-*来实现 的,但是看了实现之后,发现是设置了-fno-inline这个参数。很纳闷。根据我的理解,这个no-inline忽略函数的inline标志,也就是 说,inline的函数不会被展开到代码里。这虽然稍微减小了编译时候的内存操作,但是更多的是影响了生成的二进制的执行效率。