在lazy set和make中的立即设置之间存在巨大的内存使用差异

时间:2016-10-24 10:44:37

标签: makefile variable-assignment

我注意到懒惰集之间的内存使用量存在差异:

XML2_INC=$(shell echo `xml2-config --cflags`)

并立即设置:

XML2_INC:=$(shell echo `xml2-config --cflags`)

在makefile中用于同时作业:

make -j

来自系统监视器的屏幕: enter image description here

在时间轴中大约40秒使用懒惰集并且在大约第15秒使用立即集。所以我的问题是为什么这两者之间的内存消耗有这么大的差异?

1 个答案:

答案 0 :(得分:0)

第一个分配是一个惰性分配,每次使用都会对其进行评估-因此,xml2-config将在您每次将XML2_INC用作变量时运行。第二个在定义时进行评估。