【发布时间】:2019-05-25 15:10:35
【问题描述】:
如何并行构建包以减少 make 命令所花费的时间(Golang)
我的当前目录是“雷神”
在我的 Makefile
中build:
go build -o thor
go build thor/package1
go build thor/scripts/package2
在上述情况下,所有包都是独立运行的独立进程。当我运行 make 命令时,每个包都会一个一个地构建。因此,如果每个包构建需要 30 秒,则总共需要 90 秒(30 秒 * 3)。但如果我可以并行构建这些包,只需要 30 秒。
如果是 shell 脚本,这种情况可以通过使用 & 在后台运行每个脚本并使用 wait 等到每个脚本结束来处理
示例代码
#!/bin/bash
echo "Starts"
./s1.sh &
./s2.sh &
./s3.sh &
wait
echo "ends"
在上述情况下,所有脚本 s1.sh ,s2.sh ,s3.sh 将同时运行并等待所有进程完成。
那么,我们也可以在 Makefile 中做这样的事情吗:)
【问题讨论】:
标签: makefile parallel-processing