模式规则与静态模式规则哪个有效?

时间:2019-06-20 00:03:42

标签: makefile

我怀疑那是 如果我可以同时使用模式规则和静态模式规则编写规则 哪个比另一个更好?
模式规则更快速,更有效吗?
如果静态模式规则中的静态目标列表太多 它会降低性能吗?

1 个答案:

答案 0 :(得分:2)

显式规则将始终比隐式规则更快。隐式规则包括模式规则和后缀规则。静态模式规则尽管名称似乎暗示它们是模式规则,但实际上不是:它们是显式规则(make在内部为静态模式规则中的每个扩展目标生成一个单独的显式规则)。

的确,您拥有的静态模式目标越多,make就会使用的内存就越多,理论上,模式规则将允许make匹配该模式,然后在配方完成后释放与其关联的内存,这可能会导致较低的内存使用率,但我认为必须要有大量内存才能抵消匹配模式规则所需的额外处理。

一如既往,唯一确定的方法就是在您的环境中对其进行测试。

但是我怀疑静态模式规则会更快。

但是,对我而言,更重要的是可读性和灵活性...与编译器和链接器在构建中花费的时间相比,import gzip import json with gzip.open("19.04_association_data.json.gz", "r") as f: data = f.read() with open('association.json', 'w') as json_file: json.dump(data.decode('utf-8'), json_file) with open("association.json", "r") as read_it: association_data = json.load(read_it) print(type(association_data)) #The actual output is 'str' but I expect it is 'dic' 期间的额外时间通常没什么。对于某些非常大和复杂的makefile,当然可能并非如此。