make 中惰性集和立即集之间的巨大内存使用差异
Posted
技术标签:
【中文标题】make 中惰性集和立即集之间的巨大内存使用差异【英文标题】:Huge memory usage difference between lazy set and immediate set in make 【发布时间】:2017-03-06 02:45:54 【问题描述】:我注意到惰性集之间的内存使用存在差异:
XML2_INC=$(shell echo `xml2-config --cflags`)
和立即设置:
XML2_INC:=$(shell echo `xml2-config --cflags`)
在makefile中用于同时作业:
make -j
来自系统监视器的屏幕:
大约在时间线的第 40 秒内使用惰性集,并在大约 15 秒内使用即时集。所以我的问题是为什么这两者之间的内存消耗有这么大的差异?
【问题讨论】:
发布minimal reproducible example,您需要首先证明这不是由于您在 makefile 中执行的其他操作。 【参考方案1】:第一个赋值是惰性赋值,每次使用时都会进行评估 - 因此,每次使用 XML2_INC
作为变量时,xml2-config
都会运行。第二个在定义时进行评估。
【讨论】:
以上是关于make 中惰性集和立即集之间的巨大内存使用差异的主要内容,如果未能解决你的问题,请参考以下文章
make_initializable_iterator 和 make_one_shot_iterator 之间的 tensorflow 数据集 API 差异
Keras 神经网络中 val-acc 和预测精度之间的巨大差异