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 差异

识别 SVM 中可能的过拟合

Keras 神经网络中 val-acc 和预测精度之间的巨大差异

使用验证集、训练集和测试集之间的顺序

内存的工作集和专用工作集,哪个才是真实的内存占用量?win7中咋设置点关机后立马关机不提示程序未关

在 Google Colab 上与在本地机器上训练 DeepLab ResNet V3 之间的巨大差异