如果我有以下内容
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 3, 7], 'b': [1.0, 99.0, 20.0, 63.]})
criteria = df[df['b'] >= 60.0]
我用%.o: %.c
gcc -c -o $@ $<
运行make,会做多线程构建吗?我已经阅读了-j
的文档,并说它将并行运行多个配方。在我的例子中,似乎只有一个配方,但我不确定make是否会进行多线程构建。
答案 0 :(得分:0)
是的,这是根据您传递给-j
参数的作业数量运行的(例如,您机器上的处理器数加一个似乎是一个很好的值)。此规则很可能会消耗较大项目中的大部分构建时间,与-j1
运行相比,您应该能够看到相当大的加速时间。
答案 1 :(得分:0)
这是一条规则,但它是模式规则。模式规则为make提供了一个“模板”,以便了解如何根据对应的.o
文件更新任何.c
文件。
因此,如果要从10个源文件构建10个目标文件,make会将此模式规则应用于每个文件规则以构建它。如果你使用-j10
,那么make会并行调用所有的配方,因为它们不相互依赖。